2011-12-29 10 views

答えて

5
SELECT * FROM table WHERE <timestamp-field> BETWEEN 'YYYY-MM-DD 00:00:00' AND 'YYYY-MM-DD 23:59:59' 

は、可能な場合は、フィールド上で計算を行うことを避ける:例えば

SELECT * FROM table WHERE DATE(<timestamp-field>) = 'YYYY-MM-DD' 

は、そのテーブルのすべての行のDATE()を計算しますので、あなたは本当にここ

+0

や '<タイムスタンプ・フィールド>> = 'YYYY-MM-DD' AND <タイムスタンプを無駄サイクルを話しています-field><'YYYY-MM-DD' + INTERVAL 1 DAY' –

+0

私はBETWEEN呼び出しをしなければならないかもしれないと思ったが、正確な日付を指定する場所はどこですか?私は日付を今日にしたい、そしてもちろん、それはいつも別の値になるでしょう。 – Murphy1976

+0

現在の日付が必要な場合は、date_sub(date_sub(date_sub(now()、INTERVAL hour(now())を使用してください。開始時刻とdate_sub(date_sub(date_sub(now()、INTERVAL hour(now)) - 24時間)、INTERVAL分(現在())MINUTE)、INTERVAL分終了の場合はTIMESTAMP(CURDATE())、終了の場合はTIMESTAMP(CURDATE())、終了の場合はDATE_ADD(TIMESTAMP(CURDATE())、INTERVAL 86399 SECOND)のいずれかを指定します。 –

1

単に使用DATE

SELECT * FROM table WHERE DATE(timestamp) = '2011-12-29' 
オールウェイズ