2011-02-10 17 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分04秒

私が実行し、 選択*リストから、今timestampField>(()であります* 60))

空の結果セットを返します。ここでは、2011-02-10 9:20:04以降に入力したエントリが必要です。

私は実行

、 選択*リストからどこtimestampField>(今() - (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