sql >> データベース >  >> RDS >> Mysql

クエリでMYSQLの日付に日を追加するにはどうすればよいですか?

    end_dateの行が必要なようです 5日前より後です。

    それを取得するための最良の方法は

    を使用することです
     WHERE end_date >= CURDATE() - INTERVAL 5 DAY
    

    日付に整数を追加するビジネスは、MySQLでは機能しません(これはOracleのものです)。したがって、INTERVAL n unitを使用する必要があります 構文。

    上記のWHERE句は機能的に

    と同等であることに気付くでしょう。
     WHERE DATE(end_date) + INTERVAL 5 DAY >= DATE(NOW())
    

    ただし、2つの理由から、最初の定式化は2番目の定式化よりも優れています。

    1. end_dateについて言及した場合 計算でラップせずにWHERE句を使用すると、クエリはその列のインデックスを利用して、より高速に実行できます。
    2. DATE(NOW()) およびCURDATE() どちらも今日の最初の瞬間(真夜中)を指します。ただし、CURDATE() 少し簡単です。


    1. WCF と Sync Framework を使用して HTTP 経由で SQL Server 2008 データベースを同期する

    2. MySQL:2列でグループ化して合計

    3. ストアドプロシージャ関数の動的テーブル名

    4. クエリにプレースホルダー/動的データがない場合、PDOの準備を省略できますか?