본문 바로가기

SQL

[MySql] 시간관련 쿼리 (DATE, DATETIME, TIME, TIMESTAMP)

DATE(expr)

DATE는

날짜(date)나 DATETIME 표현 expr 에서 DATE 부분을 추출한다.

DATE 타입은 날짜는 포함하지만 시간은 포함하지 않을 때 사용하는 타입이다.

YYYY-MM-DD 형식으로 입력 가능하며, '1000-01-01'부터 '9999-12-31'까지만 입력 가능하다.

 

mysql> SELECT DATE('2003-12-31 01:02:03');
        -> '2003-12-31'

DATE()는 MySQL 4.1.1 버전부터 사용이 가능하다.

DATETIME(expr)

DATETIME타입은 날짜와 시간을 모두 포함할 때 사용하는 타입이다.

YYYY-MM-DD HH:mm:SS 형식 입력으로 '1001-01-01 00:00:00'부터 '9999-12-31 23:59:59'까지 입력가능하다.

mysql> SELECT TIME('2003-12-31 01:02:03');
        -> '2003-12-31 01:02:03'

TIME(expr)

TIME 또는 DATETIME 형식의 expr 에서 TIME 부분을 추출한다.

mysql> SELECT TIME('2003-12-31 01:02:03');
        -> '01:02:03'
mysql> SELECT TIME('2003-12-31 01:02:03.000123');
        -> '01:02:03.000123'

TIME()는 MySQL 4.1.1 버전부터 사용이 가능하다.

 

TIMESTAMP(expr) , TIMESTAMP(expr,expr2)

인자 하나 만을 사용한다면, DATE 또는 DATETIME expr 를 DATETIME 값으로 반환한다. 인자 두 개를 사용한다면, DATE 또는 DATETIME 형식의 expr 에 TIME 형식의 expr2 를 더하고 그 DATETIME 값을 반환한다.

mysql> SELECT TIMESTAMP('2003-12-31');
        -> '2003-12-31 00:00:00'
mysql> SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00');
        -> '2004-01-01 00:00:00'

TIMESTAMP()는 MySQL 4.1.1 버전부터 사용이 가능하다.

 

<참고>

https://linuxism.ustd.ip.or.kr/510

 

MySQL DATE 포맷 및 함수

DATE 값을 기대하는 함수들은 일반적으로 DATETIME 값을 수용하고, TIME 부분은 무시한다. TIME 값을 기대하는 함수들은 일반적으로 DATETIME 값을 수용하고, DATE 부분은 무시한다. 현재 날짜나 시간을 반

linuxism.ustd.ip.or.kr

https://easy-coding.tistory.com/110