職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

SQLの日付と時刻を取得する関数

2020年07月31日 | sqlite
SQLの日付と時刻を取得する関数


【開発環境】
OS:Win10(64ビット)
データベース:SQLite3
コマンドプロンプト入力

【日付と時刻の取得方法】
それぞれの関数は日付と時刻を取得する為に使用する

書式
date(timestring, modifier, modifier, ...)
time(timestring, modifier, modifier, ...)
datetime(timestring, modifier, modifier, ...)
julianday(timestring, modifier, modifier, ...)
strftime(format, timestring, modifier, modifier, ...)

各関数のフォーマット
date関数 'YYYY-MM-DD'
time関数 'HH:MM:SS'
datetime関数 'YYYY-MM-DD HH:MM:SS'
julianday関数 'J'

■date関数、time関数、datetime関数を使った日付と時刻の取得
SQL文
sqlite> .header on
sqlite> .mode column
sqlite> select date('2018-05-12 13:15:42') as date,
...> time('2019-08-04 08:42:19') as time,
...> datetime('2019-11-30 21:16') as datetime;
date time datetime
---------- ---------- -------------------
2018-05-12 08:42:19 2019-11-30 21:16:00
sqlite>
現在の日付と時刻を取得するには
SQL文
sqlite> select date('now') as date,
...> time('now') as time,
...> datetime('now') as datetime;
date time datetime
---------- ---------- -------------------
2020-07-30 02:28:08 2020-07-30 02:28:08

■julianday関数を使った日付と時刻の取得
指定した日時からユリウス日を取得する。

SQL文
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> .header on
sqlite> .mode column
sqlite> select julianday('2019-08-04 08:42:19') as julianday;
julianday
----------------
2458699.86271991
sqlite>
■strftime関数を使った日付と時刻の取得
フォーマット
%Y 年: 0000-9999
%m 月: 01-12
%d 日
%W 年の初めからの週数: 00-53
%j 年の初めからの経過日数: 001-366
%w 曜日: 0-6 (日曜日が0、土曜日が6)
%H 時: 00-24
%M 分: 00-59
%S 秒: 00-59
%f 秒+ミリ秒: SS.SSS
%s 1970-01-01からの経過秒数
%J ユリウス日
%% %文字そのもの

SQL文
sqlite> select strftime('%H:%M:%f', 'now') as strftime;
strftime
------------
07:08:21.984
sqlite>
sqlite> select strftime('経過秒数 %s秒', 'now') as strftime;
strftime
----------------
経過秒数 1596179369秒
sqlite>

■Modifiers(修飾子)の使い方
sqlite> select datetime('2020-07-04', '+1 days') as datetime;
datetime
-------------------
2020-07-05 00:00:00
sqlite>
sqlite> select datetime('2020-07-04', '-4 hours') as datetime;
datetime
-------------------
2020-07-03 20:00:00
sqlite>
sqlite> select datetime('2020-07-04','+2 days', '-4 hours') as datetime;
datetime
-------------------
2020-07-05 20:00:00
sqlite>
最初の日と最初の時間
sqlite> select datetime('2019-05-04 21:16', 'start of year') as datetime;
datetime
-------------------
2019-01-01 00:00:00
sqlite> select datetime('2019-05-04 21:16', 'start of month') as datetime;
datetime
-------------------
2019-05-01 00:00:00
sqlite> select datetime('2019-05-04 21:16', 'start of day') as datetime;
datetime
-------------------
2019-05-04 00:00:00
sqlite>
指定した曜日の日
sqlite> select datetime('2019-05-04', 'weekday 0') as datetime;
datetime
-------------------
2019-05-05 00:00:00
sqlite> select datetime('2019-05-04', 'weekday 3') as datetime;
datetime
-------------------
2019-05-08 00:00:00
sqlite>

コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 息子介護物語-エピソード22(... | トップ | ヨーロッパの歴史・経済-中世... »
最新の画像もっと見る

コメントを投稿

sqlite」カテゴリの最新記事