SQLite,日時の出力形式を指定し、UTCとJSTで出力する

スポンサーリンク

鍛錬 73

SQLite,日時の出力形式を指定し、UTCとJSTで出力する

日時の出力形式を指定するには、strftime() 関数を使用します。
 
使用方法は、以下に示す通りです。

UTC(協定世界時) の時刻で出力する場合

select strftime(‘出力形式’, CURRENT_TIMESTAMP);

 
JST(日本標準時) の時刻で出力する場合

select strftime(‘出力形式’, CURRENT_TIMESTAMP, ‘+9 hours’);

出力形式

以下は、出力形式の一部です。

形式 説明
%Y
%m
%d
%H
%M
%S
%s Unix時刻からの経過秒数

CURRENT_TIMESTAMP と ‘+9 hours’

CURRENT_TIMESTAMP
strftime() 関数の第2引数で CURRENT_TIMESTAMP を指定すると、UTC(協定世界時) の時刻で出力します。

‘+9 hours’
strftime() 関数の第2引数で CURRENT_TIMESTAMP を指定し、第3引数で ‘+9 hours’ を指定すると、JST(日本標準時) の時刻で出力します。

これは、JST(日本標準時) と UTC(協定世界時) の時差が +9時間 であるためです。

スポンサーリンク

実行結果

以下は、UTC(協定世界時) と JST(日本標準時) の場合について、日時を出力しています。

UTC(協定世界時)

以下は、現在の日時及びUnix時刻からの経過秒数を、出力形式を指定して UTC(協定世界時) の時刻で出力しています。

sqlite> 
sqlite> select strftime('now date = %Y-%m-%d %H:%M:%S, Unix time = %s', CURRENT_TIMESTAMP);
now date = 2018-04-13 18:02:54, Unix time = 1523642574

 
上記に示した通り、UTC(協定世界時) が 2018年4月13日 午後18時02分54秒、Unix時刻からの経過秒数が 1523642574秒 であることが分かりました。

JST(日本標準時)

以下は、現在の日時及びUnix時刻からの経過秒数を、出力形式を指定して JST(日本標準時) の時刻で出力しています。

sqlite> 
sqlite> select strftime('now date = %Y-%m-%d %H:%M:%S, Unix time = %s', CURRENT_TIMESTAMP, '+9 hours');
now date = 2018-04-14 03:02:57, Unix time = 1523674977

 
上記に示した通り、JST(日本標準時) が 2018年4月14日 午前03時02分57秒、Unix時刻からの経過秒数が 1523674977秒 であることが分かりました。

タイトルとURLをコピーしました