Baccho Log

No Image

Sponsored Link

[MySQL]期間限定の抽出

  • 投稿日:
  • 更新日:
Tags:
MySQL
Categories:
プログラミング

期間を限定してデータを取得する

Ex)今月内に登録されたデータを取得

SELECT
    `table`.`id`
FROM
    `table`
WHERE
    `table`.`c_date` BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND DATE_FORMAT(LAST_DAY(NOW()), '%Y-%m-%d 23:59:59'))

■補足

  • 日付のみを表示(Y-m-d)
    CURRENT_DATE = CURRENT_DATE() = CURDATE()

  • 日付 + 時刻を表示(Y-m-d H:i:s)
    ステートメントが実行を開始する時刻
    CURRENT_TIMESTAMP() = CURRENT_TIMESTAMP = NOW()
    ステートメントが実行された時刻

  • 時刻を表示(H:i:s)
    CURRENT_TIME() = CURRENT_TIME = CURTIME()

  • LAST_DAY
    月の最終日を表示(Y-m-d)

  • DATE_ADD
    日付を加算する

  • DATE_SUB
    日付を減算する

NOW()SYSDATE() を実際に検証

# NOW()
SELECT NOW(), SLEEP(2), NOW();
# 結果
# 最初のNOW() 2019-10-09 11:22:22
# 最後のNOW() 2019-10-09 11:22:22

# SYSDATE()
SELECT SYSDATE(), SLEEP(2), SYSDATE();
# 結果
# 最初のSYSDATE() 2019-10-09 11:22:22
# 最後のSYSDATE() 2019-10-09 11:22:24

となる。

Ex)その他諸々のサンプル

mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND;
        -> '1998-01-01 00:00:00'
mysql> SELECT INTERVAL 1 DAY + '1997-12-31';
        -> '1998-01-01'
mysql> SELECT '1998-01-01' - INTERVAL 1 SECOND;
        -> '1997-12-31 23:59:59'
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
    ->                 INTERVAL 1 SECOND);
        -> '1998-01-01 00:00:00'
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
    ->                 INTERVAL 1 DAY);
        -> '1998-01-01 23:59:59'
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
    ->                 INTERVAL '1:1' MINUTE_SECOND);
        -> '1998-01-01 00:01:00'
mysql> SELECT DATE_SUB('1998-01-01 00:00:00',
    ->                 INTERVAL '1 1:1:1' DAY_SECOND);
        -> '1997-12-30 22:58:59'
mysql> SELECT DATE_ADD('1998-01-01 00:00:00',
    ->                 INTERVAL '-1 10' DAY_HOUR);
        -> '1997-12-30 14:00:00'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
        -> '1997-12-02'
mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
    ->            INTERVAL '1.999999' SECOND_MICROSECOND);
        -> '1993-01-01 00:00:01.000001'

■参考サイト
https://colo-ri.jp/develop/2010/11/mysqlsql.html
http://mysql.recipe123.net/man/sub/functions/function_date-add.html

« [CSS]游ゴシックを使用する際のテンプレ[MySQL]条件分岐させる方法 »

Sponsored Link

コメントする

記事の感想や修正依頼等ありましたら、コメントをお願いいたします