2011-01-05 8 views
4

私はこのフォーマットで、一つのフィールドで日時を保持しているMySQLデータベースを持っている:チェックのみ日付

'2011-01-04 16:32:49' 

は、どのように私はそれだけで今日から結果を示しているように、この日時に基づいて結果をフィルタリングすることができます。基本的には、フィールドの日付部分と比較したいだけです。

私はこれを行うことはできますか?

Select * from table where timestamp.date() = now().date 

答えて

3

使用DATE:あなたは1を持っている場合timestampにインデックスを使用することができます

SELECT * FROM table 
WHERE DATE(timestamp) = DATE(now()) 

別の方法:

SELECT * FROM table 
WHERE timestamp >= DATE(now()) 
AND timestamp < DATE(now()) + interval 1 day 
+0

ありがとうございます。これはすごくうまくいった。期限が過ぎるとすぐに受け入れます。 – xbonez

1

はいすることができますが、格納する列をデータベース内のdateTimeフィールドを参照するだけで済みます。その上で.date()関数を呼び出すべきではありません。 MySQLの

1

、これは次のようになります。DATEDIFF(NOW()、タイムスタンプ)= 0

これはあなたの日が今日であるレコードだけを与えるだろうテーブルから

選択*。

1
Select * from table where DATE_FORMAT(timestamp, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d') 
関連する問題