6


0

1時間以内に作成されたすべてのレコードを選択します
startTimestamp < date_sub(curdate(), interval 1 hour)

上記の(サブ)クエリは、1時間以内に作成されたすべてのレコードを返しますか? そうでない場合は、誰かが私に正しいものを見せてくれますか? 完全なクエリは次のようになります。

select * from table where startTimestamp < date_sub(curdate(), interval 1 hour);

1 Answer


15


タイムスタンプを1時間前のタイムスタンプよりも大きくするため、「CURDATE()」ではなく「NOW()」を使用し、「<」ではなく「> =」を使用します。 `CURDATE()`は日付部分のみを返し、 `NOW()`は日付と時刻の両方を返します。

startTimestamp >= date_sub(NOW(), interval 1 hour)

たとえば、私のタイムゾーンでは12:28です

SELECT NOW(), date_sub(NOW(), interval 1 hour);
2011-09-13 12:28:53  2011-09-13 11:28:53

すべてをまとめると、必要なものは次のとおりです。

select * from table where startTimestamp >= date_sub(NOW(), interval 1 hour);