2011-02-10 2 views
1

삽입 할 때 현재 시간으로 설정된 타임 스탬프 필드를 사용합니다.mysql 시간 비교 - 이상한 결과

다음 항목이 있습니다. (8 * 60 - 이제

6 2011-02-10 09:36:31  174.129.228.67 
    4 2011-02-10 09:36:36  174.129.228.67 
    5 2011-02-10 09:36:41  174.129.228.67 
    4 2011-02-10 12:11:08  192.168.0.4 
    6 2011-02-10 12:48:21  192.168.0.22 
    1 2011-02-10 12:48:45  192.168.0.22 
    2 2011-02-10 12:49:00  192.168.0.22 
    2 2011-02-10 12:49:01  66.220.158.251 
    6 2011-02-10 12:49:18  66.220.158.251 
    5 2011-02-10 13:00:25  66.220.149.249 

()는

2011-02-10 17시 20분 4초

I가 실행 * 선택리스트에서 현재 timestampField> (() 인 * 60))

빈 결과 집합을 반환합니다. 여기에 2011-02-10 9:20:04 이후에 입력 된 항목이 필요합니다.

내가 실행

, 선택 * 목록에서 위치를 timestampField> (NOW() - (14 * 60 * 60))

내가 얻을

1 2011-02-10 12:48:45  192.168.0.22 
2 2011-02-10 12:49:00  192.168.0.22 
2 2011-02-10 12:49:01  66.220.158.251 
6 2011-02-10 12:49:18  66.220.158.251 

왜이. 이전 시간의 항목을 가져 오는 올바른 방법이 무엇인지 말해 줄 수 있습니까?

감사합니다.

답변

2

mysql에서 시간을 초 단위로 뺄 수 없습니다. 다음과 같은 함수를 사용해야합니다.

WHERE dateadded > DATE_SUB(NOW(), INTERVAL 8 HOUR) 
+0

일부 값과 일부 값은 어떻게 반환합니까? 매뉴얼의 모든 언급. – itsraja

+0

'-'를 사용하여'now()'값에서 빼기 때문에'20110210131151.000000'과 같은 값을 빼는 것입니다. 따라서 14 * 60 * 60과 같이 많은 양을 빼면'20110210080831.000000'이됩니다. 그것은 적지 만 14 시간 미만은 아닙니다. – gnur

+0

오류가 발생하지 않습니다. 그러나 urs는 잘 작동합니다. 감사. – itsraja