유닉스 타임 스탬프를 사람이 읽을 수있는 날짜로 변환하는 데 사용할 수있는 MySQL 함수가 있습니까? 유닉스 시간을 절약 할 수있는 하나의 필드가 있으며 이제 사람이 읽을 수있는 다른 필드를 추가하고 싶습니다.
유닉스 타임 스탬프를 사람이 읽을 수있는 날짜로 변환하는 데 사용할 수있는 MySQL 함수가 있습니까? 유닉스 시간을 절약 할 수있는 하나의 필드가 있으며 이제 사람이 읽을 수있는 다른 필드를 추가하고 싶습니다.
답변:
사용 FROM_UNIXTIME()
:
SELECT
FROM_UNIXTIME(timestamp)
FROM
your_table;
다음의 MySQL 문서FROM_UNIXTIME()
도 참조하십시오 .
from_unixtime
: dev.mysql.com/doc/refman/5.1/en/...
TO_UNIXTIME
없지만 대신 UNIX_TIMESTAMP
.
다른 답변 (이 글을 쓸 때)에서 누락되었지만 직접 명확하지 않은 것은 from_unixtime
형식을 지정하기 위해 두 번째 매개 변수를 취할 수 있다는 것입니다.
SELECT
from_unixtime(timestamp, '%Y %D %M %H:%i:%s')
FROM
your_table
나는 당신이 찾고있는 것이 FROM_UNIXTIME()
mysql cli에 빠르게 액세스 할 수있는 경우 하나의 라이너가 있습니다.
mysql> select convert_tz(from_unixtime(1467095851), 'UTC', 'MST') as 'local time';
+---------------------+
| local time |
+---------------------+
| 2016-06-27 23:37:31 |
+---------------------+
'MST'
원하는 시간대로 교체하십시오 . 나는 애리조나 🌵에 살고 있으므로 UTC에서 MST로 변환합니다.
이 질문을 알지 못했기 때문에 mysql은 항상 타임 스탬프 필드에 시간을 UTC로 저장하지만 현지 시간대에는 phpmyadmin과 같이 표시합니다. 결과를 추가하고 싶습니다.
다음과 같이 자동으로 업데이트 된 last_modified 필드가 있습니다.
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
phpmyadmin으로보고하면 현지 시간 인 것처럼 보입니다. 내부적으로 UTC입니다.
SET time_zone = '+04:00'; // or '+00:00' to display dates in UTC or 'UTC' if time zones are installed.
SELECT last_modified, UNIX_TIMESTAMP(last_modified), from_unixtime(UNIX_TIMESTAMP(last_modified), '%Y-%c-%d %H:%i:%s'), CONVERT_TZ(last_modified,@@session.time_zone,'+00:00') as UTC FROM `table_name`
모든 별자리에서 UNIX_TIMESTAMP 및 'as UTC'는 항상 UTC 시간으로 표시됩니다.
time_zone을 설정하지 않고 먼저 두 번 실행하십시오.