概要
SQLite3で「現在」を取得する方法はいくつかある。
いわゆる「タイムスタンプ」を取得したい場合は、以下に示すいずれかの方法で取得すればいい。
全て
UTC
で取得されるので必要に応じて時差を計算する必要がある。
now
date()やtime()といった日時用の関数の引数として使用して、現在日時を取得する。
sqlite> select date('now');
2021-12-10
sqlite> select datetime('now');
2021-12-10 13:32:03
sqlite> select time('now');
13:32:10
current_date
本日日付(UTC)を取得出来る。date('now')と同等の機能。
datetime()の引数に指定した場合、時刻部分は00:00:00となる。
sqlite> select current_date;
2021-12-10
sqlite> select datetime(current_date);
2021-12-10 00:00:00
current_time
現在時刻(UTC)を取得出来る。time('now')と同等の機能。
datetime()の引数に指定した場合、日付部分は2000-01-01となる。
sqlite> select current_time;
14:17:59
sqlite> select datetime(current_time);
2000-01-01 14:18:10
current_timestamp
現在日時(UTC)を取得出来る。datetime('now')と同等の機能。
sqlite> select current_timestamp;
2021-12-10 14:18:35
データ作成日のデフォルト値としてよく使う。
create table users {
user_id text not null
, user_name text not null
, timestamp text default current_timestamp
}
外部参考サイト
-
SQLite Query Language: Date And Time Functions(英語)
公式の日時型に関するドキュメント
https://www.sqlite.org/lang_datefunc.html