2022年3月5日土曜日

SQLite3 年の初日を取得する (start of year)

概要

指定した日時からその年の初日(1月1日)を取得する方法。
文字列を切り貼りするよりはスマートに記述することが出来る。

構文

「date()」もしくは「datetime()」の引数に「start of year」を追加すると その月の初日を取得することができる。
「start of year」は大文字と小文字どちらでもいい。

「datetime()」の引数に「start of year」を指定した場合、 結果の時間部分は「00:00:00」になることに注意すること。


date(time-value, 'start of year')
datetime(time-value, 'start of year')
                    

日時として指定出来る文字列(time-value)については以下を参照のこと。

実行例

環境
  • Windows 10 64bit
  • SQLite3 ver.3.37.0

sqlite> select date('2022-03-05', 'start of year');
2022-01-01

sqlite> select datetime('2022-03-05 09:00:00', 'start of year');
2022-01-01 00:00:00

sqlite> select date('now', 'start of year');
2022-01-01

sqlite> select datetime('now', 'start of year');
2022-01-01 00:00:00

sqlite> select date(datetime('2022-03-05 09:00:00'), 'start of year');
2022-01-01

sqlite> select datetime(date('2022-03-05'), 'start of year');
2022-01-01 00:00:00
                    

外部参考サイト