2025.12.31 | 조회 : 22

MySQL에서 날짜 데이터를 DATETIME 대신 유닉스 타임스탬프 형태로 저장하는 경우가 많습니다. 계산과 비교에는 유리하지만, 그대로 출력하면 사람이 읽기 어렵다는 단점이 있습니다. 이 글에서는 MySQL에서 유닉스 타임을 날짜 형식으로 변환하는 실전 쿼리를 정리합니다.
유닉스 타임스탬프는 1970년 1월 1일 00:00:00 (UTC) 기준으로 경과한 초(second)를 숫자로 표현한 값입니다.
1735689600위 숫자는 특정 날짜와 시간을 의미하지만, 그대로는 직관적으로 이해하기 어렵습니다.
MySQL에서는 FROM_UNIXTIME() 함수를 사용해 유닉스 타임을 날짜 형식으로 변환할 수 있습니다.
SELECT FROM_UNIXTIME(unix_time_column)
FROM your_table;
기본적으로 DATETIME 형태로 결과가 반환됩니다.
날짜만 출력하거나 원하는 형식으로 보여주고 싶다면 포맷 문자열을 함께 사용하면 됩니다.
SELECT FROM_UNIXTIME(unix_time_column, '%Y-%m-%d') AS date_value
FROM your_table;
WHERE 절에서 FROM_UNIXTIME()를 직접 사용하면 인덱스를 타지 못할 수 있습니다.
SELECT *
FROM your_table
WHERE FROM_UNIXTIME(add_time, '%Y-%m-%d') = '2025-01-01';
성능을 고려한다면 날짜를 다시 유닉스 타임으로 변환해 비교하는 방식이 더 안전합니다.
SELECT *
FROM your_table
WHERE add_time >= UNIX_TIMESTAMP('2025-01-01 00:00:00')
AND add_time < UNIX_TIMESTAMP('2025-01-02 00:00:00');
현재 시간을 기준으로 변환 결과를 확인하고 싶을 때는 다음 쿼리를 사용하면 됩니다.
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()) AS now_datetime;
FROM_UNIXTIME() 사용