본문으로 건너뛰기
최종 수정: 에

UNIX_TIMESTAMP

설명​

Date 또는 Datetime 타입을 unix 타임스탬프로 변환합니다.

매개변수가 제공되지 않으면 현재 시간을 타임스탬프로 변환합니다.

매개변수는 Date 또는 Datetime 타입이어야 합니다.

형식 지정 방법은 date_format 함수의 형식 설명을 참고하세요.

이 함수는 시간대의 영향을 받습니다. 시간대에 대한 자세한 내용은 시간대 관리를 참고하세요.

이 함수는 MySQL의 unix_timestamp 함수와 동일하게 동작합니다.

구문​

UNIX_TIMESTAMP()
UNIX_TIMESTAMP(`<date_or_date_expr>`)
UNIX_TIMESTAMP(`<date_or_date_expr>`, `<fmt>`)

매개변수​

매개변수설명
<date_or_date_expr>입력 날짜 및 시간 값으로, date/datetime 타입을 지원합니다. datetime 및 date 형식은 datetime 변환과 date 변환을 참고하세요.
<fmt>날짜 매개변수에서 타임스탬프로 변환할 특정 부분을 지정하며, 타입은 문자열입니다. 이 매개변수가 제공되면 형식과 일치하는 부분만 타임스탬프로 변환됩니다.

반환 값​

입력에 따라 두 가지 타입을 반환합니다.

  1. 입력 date_or_date_expr이 스케일이 영이 아닌 datetime 타입이거나 형식 매개변수가 있는 경우: 소수점 이하 최대 여섯 자리 정밀도의 Decimal 타입 타임스탬프를 반환합니다.

  2. 입력 date_or_date_expr의 스케일이 0이고 형식 매개변수가 없는 경우: INT 타입 타임스탬프를 반환합니다.

입력 시간을 해당 타임스탬프로 변환하며, 기준 시각은 1970-01-01 00:00:00입니다.

  • 매개변수 중 하나라도 null이면 null을 반환합니다.
  • 형식이 유효하지 않으면 오류를 반환합니다.

예제​

-- Input datetime is the begin datetime
mysql> select unix_timestamp('1970-01-01 00:00:00');
+---------------------------------------+
| unix_timestamp('1970-01-01 00:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+

-- Display timestamp of current time
mysql> select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
| 1753933330 |
+------------------+

-- Input a datetime to display its timestamp
mysql> select unix_timestamp('2007-11-30 10:30:19');
+---------------------------------------+
| unix_timestamp('2007-11-30 10:30:19') |
+---------------------------------------+
| 1196389819 |
+---------------------------------------+


-- Match format to display timestamp for given datetime
mysql> select unix_timestamp('2007-11-30 10:30-19', '%Y-%m-%d %H:%i-%s');
+------------------------------------------------------------+
| unix_timestamp('2007-11-30 10:30-19', '%Y-%m-%d %H:%i-%s') |
+------------------------------------------------------------+
| 1196389819.000000 |
+------------------------------------------------------------+

-- Input with non-zero scale
mysql> SELECT UNIX_TIMESTAMP('2015-11-13 10:20:19.123');
+-------------------------------------------+
| UNIX_TIMESTAMP('2015-11-13 10:20:19.123') |
+-------------------------------------------+
| 1447381219.123 |
+-------------------------------------------+

-- For datetime before 1970-01-01, returns 0
select unix_timestamp('1007-11-30 10:30:19');
+---------------------------------------+
| unix_timestamp('1007-11-30 10:30:19') |
+---------------------------------------+
| 0 |
+---------------------------------------+

-- Returns NULL if any parameter is null
mysql> select unix_timestamp(NULL);
+----------------------+
| unix_timestamp(NULL) |
+----------------------+
| NULL |
+----------------------+

-- Returns an error if format is invalid
mysql> select unix_timestamp('2007-11-30 10:30-19', 's');
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.3)[INVALID_ARGUMENT]Operation unix_timestamp of 2007-11-30 10:30-19, s is invalid