2013-08-19 3 views
1

MySQL 날짜 기반에 저장된 이벤트가 있으며 시작 날짜와 시간은 UNIX 형식의 'startTimeStamp'열에 저장됩니다.MySQL 타임 스탬프 - 정확한 날짜

내가 events로부터 간단한 쿼리

SELECT *를 사용하여 특정 날짜에 대한 이벤트를받을 때 FROM_UNIXTIME (startTimeStamp, '% Y- % M- % D') = '2013년 8월 20일'

타임 스탬프 아래의 날짜와 시간이 2AM (예 : 2013-08-20 03:00:00)보다 크면 이전의 날짜가 더 빠를 때 모든 것이 올바르게 작동합니다.

빠른 예 : 나는 두 가지 이벤트가 - 같은 날짜하지만 서로 다른 시간

  1. 2013년 8월 20일 03:00:00 (1376960400)
  2. 2013년 8월 20일 00:00 : 00 (1376949600)

내가 전에 언급 한 쿼리를 실행할 때 내가 처음 하나를 얻을 것이다,하지만 두 번째. 두 번째 이벤트를 얻으려면 이전 이벤트 (2013-08-19)를 쿼리해야합니다.

이유가 궁금하십니까? 어쩌면 내가 뭔가를 놓친거야?

고맙습니다. 다음

SELECT @@global.time_zone, @@session.time_zone; 

그리고 올바르게 설정 :

+0

에서 원하는 형식을 사용할 수 있습니다. –

답변

0

을 당신이 장소를 선택한 것 같아요 여기서 daylight saving time이 적용됩니다. 이 경우 시간 이동은 아침에 오전 2 시부 터 오전 3시 사이에 주로 이루어 지므로 다른 날이 올 수 있습니다.

0

기본적으로 유닉스 타임 스탬프 의미 때문입니다. 1-1-1970의 초 수에 불과하므로 기술적으로 1376949600 값은 이전 날이 될 수 있습니다 (시간대에 따라 다름). 내 경우

이 같은

echo date("d-m-Y h:i", 1376949600); 
// output: 19-08-2013 11:00 
0

사용 :

$d="1376960400"; 
echo date("Y-m-d",$d); 

당신은 당신이 그것에 대해 기본 시간대를 설정해야 할 수 this link