タイムテーブル値(YYYY-MM-DD HH:MM:SS)をテーブルMETA
のMETA_VALUE
カラムに配置する関数があります。CURDATE()の日付値とフルタイムスタンプフィールドの比較
私がしたいことは、META_VALUE
の日付部分(YYYY-MM-DD)が今日(CURDATE())と等しいかどうかを、時間、分、秒(HH:MM:SS) 。
どうすればこの問題を解決できますか?
タイムテーブル値(YYYY-MM-DD HH:MM:SS)をテーブルMETA
のMETA_VALUE
カラムに配置する関数があります。CURDATE()の日付値とフルタイムスタンプフィールドの比較
私がしたいことは、META_VALUE
の日付部分(YYYY-MM-DD)が今日(CURDATE())と等しいかどうかを、時間、分、秒(HH:MM:SS) 。
どうすればこの問題を解決できますか?
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()を計算しますので、あなたは本当にここ
単に使用DATE
:
SELECT * FROM table WHERE DATE(timestamp) = '2011-12-29'
オールウェイズ
や '<タイムスタンプ・フィールド>> = 'YYYY-MM-DD' AND <タイムスタンプを無駄サイクルを話しています-field><'YYYY-MM-DD' + INTERVAL 1 DAY' –
私はBETWEEN呼び出しをしなければならないかもしれないと思ったが、正確な日付を指定する場所はどこですか?私は日付を今日にしたい、そしてもちろん、それはいつも別の値になるでしょう。 – Murphy1976
現在の日付が必要な場合は、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)のいずれかを指定します。 –