mysql

Mysql 의 sysdate 와 now 함수의 차이!

사과보단애플 2018. 1. 29. 14:14

가끔 테이블을 만들다보면, 튜플(데이터 행 이라고 이해하자) 이 만들어진 시간을 저장해야 할 경우가 있다. 예를 들어, 게시판에 글을 쓸 경우, 게시판이 써진 시간을 저장해야 하는 경우가 있다. 이 때 사용할 수 있는 것이 now() 함수 이다.


create table PostBox(

content varchar(150),

birth timestamp not null default now(),

)


위에서 처럼 default 값을 now() 로 주게 되면, 테이블의 값을 저장할 때마다 따로 birth 컬럼에 값을 입력하지 않고 null 을 입력할 경우, now() 값이 반환하는 현재 시간을 저장한다. 참고로 여기서, timestamp 타입으로 해줘야 한다. datetime 은 되지 않고 에러를 발생시킨다.



자 그럼, now() 와 sysdate() 의 차이는 무엇인가??


now() 는 쿼리문이 실행되는 시간의 값을 저장하고, sysdate() 는 해당 함수가 호출되는 순간의 시간을 저장한다. 


아래의 결과를 비교해 보라.


mysql> SELECT NOW(), SLEEP(2), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(2) | NOW()               |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:36 |        0 | 2006-04-12 13:47:36 |
+---------------------+----------+---------------------+

mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(2) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:44 |        0 | 2006-04-12 13:47:46 |
+---------------------+----------+---------------------+



출처: http://obanadingyo.tistory.com/entry/MySQL-현재-시간을-저장하는-now-함수-sysdate-와의-차이 [Right now]

'mysql' 카테고리의 다른 글

my.ini or my.cnf 에 설정할것들  (0) 2018.04.05
mysql dump 방법  (0) 2018.04.05