3

DATECREATEDというタイムスタンプフィールドを持つデータベースがあり、selectステートメントを実行して、現在の時刻がタイムスタンプから少なくとも60分以上であるすべてのレコードを取得しようとしています。

例えば。

タイムスタンプは2012-10-2912:08:11です。

上記のタイムスタンプから60分経過した場合にのみレコードを取得したい。したがって、時刻が13:09または15:09の場合は、取得する必要があります。時刻が12:15の場合、0を返す必要があります。

ここでの他の答えはこれまで役に立たなかったので、どんな助けでも大歓迎です。

ありがとう。

4

3 に答える 3

2
select * from your_table
where DATECREATED - interval 60 minute <= now() 

このSQLFiddleを参照してください

于 2012-10-29T18:11:37.217 に答える
1

CURRENT_TIMESTAMP - INTERVAL 60 MINUTE60 分前の時刻を返します。その値以下の時間は、まあ、せいぜい 60 分である必要があります。

SELECT *
FROM `table`
WHERE `datecreated` <= CURRENT_TIMESTAMP - INTERVAL 60 MINUTE
于 2012-10-30T15:26:48.743 に答える
0
...
where DATECREATED between subdate(timestamp, interval 60 minute) 
                      and adddate(timestamp, interval 60 minute)

betweenこのような を 2 つの定数値 (クエリごとに 1 回計算) で使用すると、インデックスがDATECREATED使用されます (存在する場合) 。

于 2012-10-30T01:00:58.273 に答える