MySQL에서 타임 스탬프를 datetime으로 변환하는 방법은 무엇입니까?


133

어떻게 변환 13004640002011-03-18 16:00:00MySQL의에서?


2
새 질문을 게시하기 전에 기존 질문 / 응답을 검색하십시오.이 항목은 이미 자세히 다루었습니다.
존 파커

2
문서를 이미 보셨습니까? 그것은 거기 모두이다 : dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
펠릭스 클링

답변:


200

FROM_UNIXTIME()MySQL 에서 함수 사용

밀리 초 (예 : Java의 타임 스탬프)로 저장하는 프레임 워크를 사용하는 경우 올바른 Unix 시간 (초)을 얻으려면 1000 으로 나누어야합니다 .


1
SELECT from_unixtime( TIMESTAMP( "2011-12-01", "22:01:23.048" ) )작동하지 않습니다. 왜? v5.6 사용
Janus Troelsen

3
@JanusTroelsen이 SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )작동합니다. TIMESTAMP()정수 값을 반환하지 않습니다.
cnvzmxcvmcx

4
MySQL이 Unix 시간을 초 단위로 저장하는 반면 다른 많은 프레임 워크는 밀리 초 (예 : Java의 타임 스탬프)로 저장합니다. 따라서 유닉스 시간에 밀리를 사용하는 곳에서 오는 데이터 에서이 기능을 사용하는 경우 1000으로 나누는 것을 잊지 마십시오.
Chris Thompson

64
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%Y-%m-%d %H:%i:%s') as "Date" FROM `orders`

주어진 날짜가 다음과 같이 인코딩 된 형식 인 경우 궁극적 인 솔루션입니다 1300464000


3
고마워 시간을 포함 시키려면 : DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y %H:%i:%s') as "Date" FROM `orders`
JNP 웹 개발자

DATE_FORMAT (FROM_UNIXTIME ( orderdate), '% Y- % m- % d')은 "Date"FROM orders이 최고의 솔루션이 될 것이라고 확신합니다. D
Kyle

14

Janus Troelsen의 답변에 대답하려면

TIMESTAMP 대신 UNIX_TIMESTAMP 를 사용하십시오.

SELECT from_unixtime( UNIX_TIMESTAMP(  "2011-12-01 22:01:23.048" ) )

TIMESTAMP 함수는 타임 스탬프가 아닌 Date 또는 DateTime을 리턴하고 UNIX_TIMESTAMP는 유닉스 타임 스탬프를 리턴합니다.


유닉스 시간과 유닉스 시간을 비교하는 것이 분명합니다. SELECT (CAST (DATE_FORMAT (from_unixtime (UNIX_TIMESTAMP (CURRENT_TIMESTAMP)), '% Y- % m- % d')를 DATE로 사용) <CAST ( '2019-05-02'AS DATE)); 날짜를 비교하기 위해 2019-05 * 02를 PHP의 형식이 지정된 datetime 객체로 바꿉니다. Thnaks.
Mantisse

1
원래 질문과 다른 질문에이 방법으로 대답하지 마십시오.
Paweł Stankowski

이것은 어떤 식 으로든 원래의 질문에 답하지 않습니다
Nico Haase


3

SELECT from_unixtime( UNIX_TIMESTAMP(fild_with_timestamp) ) from "your_table"
이것은 나를 위해 작동

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