Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

UPDATE를 실행할 때 ... datetime =NOW(); 업데이트된 모든 행은 mysql에서 동일한 날짜/시간을 갖습니까?


now() 함수는 명령문이 실행을 시작한 시간을 나타내는 상수 시간을 반환합니다. sysdate() 함수는 MySQL 5.0.13에서 명령문을 실행한 것과 정확히 동일한 날짜 시간을 반환합니다.

트리거 또는 저장 프로시저에서 now()를 사용하여 datetime을 업데이트하는 경우 now() 메서드는 트리거 및 저장 프로시저가 실행되기 시작하는 시간을 반환한다고 가정합니다.

다음은 now()로 업데이트하는 데모입니다. 먼저 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> Create table NowDemo-> (-> DueDateTime datetime-> );쿼리 OK, 영향을 받는 행 0개(0.51초)

insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다 -

<미리>mysql> NowDemo 값에 삽입('2018-12-19');쿼리 OK, 1행 영향(0.15초)mysql> NowDemo 값에 삽입('2018-11-10');쿼리 OK, 1행 영향을 받은(0.20초)mysql> NowDemo 값에 삽입('2017-11-21');쿼리 OK, 1행 영향(0.09초)

select 문을 사용하여 테이블의 모든 레코드를 확인합니다. 쿼리는 다음과 같습니다 -

mysql> 선택 *NowDemo;

출력

+---------------------+| DueDateTime |+---------------------+| 2018-12-19 00:00:00 || 2018-11-10 00:00:00 || 2017-11-21 00:00:00 |+------------------------+3행 세트(0.00초)

다음은 모든 값을 업데이트하는 now()로 datetime 열을 업데이트하는 쿼리입니다.

사례 1 - now() 사용

쿼리는 다음과 같습니다 -

mysql> update NowDemo set DueDateTime =now();Query OK, 영향을 받는 3개 행(0.12초) 일치하는 행:3 변경됨:3 경고:0

select 명령을 사용하여 업데이트된 값을 확인합니다. 쿼리는 다음과 같습니다 -

mysql> 선택 *NowDemo;

다음은 이제 모든 행에 동일한 datetime이 있는 출력을 표시하는 것입니다 -

+---------------------+| DueDateTime |+---------------------+| 2018-12-20 16:10:00 || 2018-12-20 16:10:00 || 2018-12-20 16:10:00 |+---------------------+3행 세트(0.00초)

사례 2 - sysdate() 사용

쿼리는 다음과 같습니다 -

mysql> update NowDemo set DueDateTime =sysdate();쿼리 OK, 3개의 행이 영향을 받았습니다(0.43초). 일치하는 행:3 변경됨:3 경고:0

select 문을 사용하여 테이블에서 업데이트된 값을 확인합니다. 쿼리는 다음과 같습니다 -

mysql> 선택 *NowDemo;

다음은 이제 모든 행에 동일한 datetime이 있는 출력을 표시하는 것입니다 -

+---------------------+| DueDateTime |+---------------------+| 2018-12-20 16:10:35 || 2018-12-20 16:10:35 || 2018-12-20 16:10:35 |+------------------------+3행 세트(0.00초)