2013-05-22 2 views
0

게시자가 데이터를 테이블로 보낸 마지막 시간을 기준으로 테이블에 삽입하는 쿼리를 만들려고합니다.타임 스탬프의 날짜 차이를 얻는 방법

예를 들어 데이터를 테이블에 게시 한 경우 시스템에서 10 시간 동안 잠겨 있습니다. 여기에 내가 지금까지 생각해 낸 것이있다. 그러나 데이터에 대한 실제 결과가 어디에도 없습니다. 어떤 도움이 필요합니까?

SELECT DATE( `date`) 
FROM tablename 
WHERE DATE(CURDATE()) < CURDATE() - INTERVAL 1002 
DAY 
LIMIT 0 , 30 

답변

1

이 지난 10 시간에서 하나의 게시물을 반환합니다 정확한 하루. date 정수 UNIX 타임 스탬프 인 경우

, 이것을 사용 : 모든

SELECT * 
FROM tablename 
WHERE `date` >= UNIX_TIMESTAMP(NOW() - INTERVAL 10 HOUR) 
LIMIT 1 
+0

'날짜'가 타임 스탬프 형식 인 경우 어떻게해야합니까? –

+0

@ kaiten65 : 작동합니다. – Quassnoi

+0

날짜 필드는 int입니다. 유닉스 형식으로 날짜를 10 자로 저장합니다. –

0

여기에는 여러 가지 방법이 있습니다. 아마도 사용자 설정 테이블이 있다면 간단히 "last_insert"필드를 추가하고 타임 스탬프를 정수 값으로 저장할 수 있습니다 - 그렇게하는 간단한 방법입니다 - 현재 타임 스탬프 vs user_settings.last_insert 및 voila를 확인할 수 있습니다 ! datetime도 사용할 수 있다고 가정합니다. 뭐든간에 보트를 뜨게. 시간 부분을 포함하지 않는 실제 DATE 때문에 내가 DATETIME로 선언 date 있으리라 믿고있어

SELECT * 
FROM tablename 
WHERE `date` >= NOW() - INTERVAL 10 HOUR 
LIMIT 1 

을, 따라서 아니라 : 존재하는 경우

0

첫째, 당신은 DATETIME 열이 아닌 DATE 열이 필요합니다. tablename.dateDATETIME 열이라고 가정하면 지금 바로 10 시간 전에 CURRENT_TIMESTAMP - INTERVAL 10 HOUR이됩니다.

0

먼저 테이블에 시간 (TIMESTAMP DEFAULT CURRENT_TIMESTAMP) columnt을 작성하십시오. 자동으로 다음 확인

를 삽입 행에 현재 날짜로 설정됩니다 :

SELECT COUNT(*) FROM Table WHERE Time > NOW() - INTERVAL 10 HOUR 

의 1 이상의 경우 - 블록

당신은 마지막 게시물은 현재 시간과 함께 넣어 된 시간을하지 비교해야

현재 시간의 현재 시간 : |

관련 문제