MySQL을 사용하여 유닉스 타임 스탬프를 사람이 읽을 수있는 날짜로 변환


222

유닉스 타임 스탬프를 사람이 읽을 수있는 날짜로 변환하는 데 사용할 수있는 MySQL 함수가 있습니까? 유닉스 시간을 절약 할 수있는 하나의 필드가 있으며 이제 사람이 읽을 수있는 다른 필드를 추가하고 싶습니다.


1
mySQL 매뉴얼의 날짜 및 시간 함수
Pekka

답변:



108

다른 답변 (이 글을 쓸 때)에서 누락되었지만 직접 명확하지 않은 것은 from_unixtime형식을 지정하기 위해 두 번째 매개 변수를 취할 수 있다는 것입니다.

SELECT
  from_unixtime(timestamp, '%Y %D %M %H:%i:%s')
FROM 
  your_table

20
매우 사소한 문제이지만 % h는 12 시간 형식의 시간이므로 완전성을 위해 % p가 필요합니다 (AM / PM). 또는 % H는 24 시간 형식으로 시간을 제공합니다.
tlum


19

특정 시간대에 유닉스 타임 스탬프가 필요하십니까?

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로 변환합니다.


7

필드를 읽을 수있는 것으로 저장하는 것이 왜 귀찮습니까? 우리 만AS

SELECT theTimeStamp, FROM_UNIXTIME(theTimeStamp) AS readableDate
               FROM theTable
               WHERE theTable.theField = theValue;

편집 : 죄송합니다. 모든 것이 초가 아닌 밀리 초 단위로 저장됩니다. 고쳤다.


4

DATE_FORMAT 함수를 사용할 수 있습니다. 다음 은 예제가 포함 된 페이지와 다른 날짜 구성 요소를 선택하는 데 사용할 수있는 패턴입니다.



1

이 질문을 알지 못했기 때문에 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을 설정하지 않고 먼저 두 번 실행하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.