Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL FROM_UNIXTIME() 함수로 TIMESTAMP 데이터 타입의 시작 범위 확인하기

FROM_UNIXTIME() 함수란?

MySQL의 FROM_UNIXTIME() 함수는 유닉스 타임스탬프, 즉 초 단위의 숫자를 TIMESTAMP 값으로 변환하는 함수입니다. 이 함수의 특성을 활용하면 TIMESTAMP 데이터 타입이 표현할 수 있는 시작 범위를 아주 간단하게 확인할 수 있습니다.

시작 범위 확인 방법

FROM_UNIXTIME() 함수에 인수로 0초를 전달하면, 유닉스 에포크(Unix Epoch) 기준 시점에 해당하는 TIMESTAMP 데이터 타입의 시작 값을 반환받을 수 있습니다.

mysql> Select FROM_UNIXTIME(0);
+-------------------------+
| FROM_UNIXTIME(0)        |
+-------------------------+
| 1970-01-01 05:30:00     |
+-------------------------+
1 row in set (0.00 sec)

위 실행 결과에서 볼 수 있듯이 0초는 '1970-01-01 05:30:00'으로 변환됩니다. 참고로 이 값은 서버의 시간대(time zone) 설정에 따라 달라지며, 위 예제는 UTC+5:30 시간대 환경에서 실행된 결과입니다. UTC 기준이라면 TIMESTAMP의 시작점은 '1970-01-01 00:00:00'이 됩니다.

인수 값 변경에 따른 결과 변화

이번에는 인수를 0에서 60초로 변경해 보겠습니다. 그러면 반환되는 시간이 정확히 1분 늘어난 것을 확인할 수 있습니다.

mysql> Select FROM_UNIXTIME(60);
+-------------------------+
| FROM_UNIXTIME(60)       |
+-------------------------+
| 1970-01-01 05:31:00     |
+-------------------------+
1 row in set (0.00 sec)

이처럼 FROM_UNIXTIME() 함수는 초 단위 값을 기반으로 TIMESTAMP를 계산하므로, 인수 값이 얼마든지 정확한 날짜와 시간으로 변환되어 반환됩니다. 이러한 원리를 이해하면 유닉스 타임스탬프와 TIMESTAMP 값 사이의 관계를 더욱 명확하게 파악할 수 있습니다.