SQLで日付をマスターして自在にあやつれるようにしよう【ADO】
ADOで日付を扱うなら見ておくべき

ADOのSQLで日付をマスターすれば、今以上に詳細な分析ができるようになるだろう。

今日を取得する

SELECT NOW() --今日の日付時刻を取得
SELECT DATE() --今日の日付を取得

翌月や翌年、前月や前年を取得する

SELECT DATEADD(ベースになる年や月, 取得したい数値, date)
SELECT DATEADD('m', 2, DATE()) --例)今日から2ヶ月後の日付を取得する

第一引数にシングルクォーテーションで囲まないとエラーが発生するから注意しよう。

第一引数内容
yyyy年単位ベース
m月単位ベース
ww週単位ベース
d日単位ベース
hh時単位ベース
n分単位ベース
s秒単位ベース

年~日だけを取得する

SELECT YEAR(date) --年のみを取得
SELECT MONTH(date) --月のみを取得
SELECT DAY(date) --日のみを取得

WHERE句で日付を使うとき

SELECT date
FROM [calendar]
WHERE date < #2021/1/1#
SELECT date
FROM [calendar]
WHERE date BETWEEN #2021/1/1# AND #2021/6/30#

日付を条件にするときは#(シャープ)で日付を囲むこと。BETWEEN 開始日 AND 終了日を使うことで、開始日~終了日の範囲でデータを抽出できる。