以下は、SQLiteの任意の日付と時刻の関数で使用できる有効な時間文字列形式のリストです。
| 時間文字列 | 例 |
|---|---|
| YYYY-MM-DD | 2020-12-30 |
| YYYY-MM-DD HH:MM | 2020-12-30 10:45 |
| YYYY-MM-DD HH:MM:SS | 2020-12-30 10:45:07 |
| YYYY-MM-DD HH:MM:SS.SSS | 2020-12-30 10:45:07.123 |
| YYYY-MM-DD T HH:MM | 2020-12-30T10:45 |
| YYYY-MM-DD T HH:MM:SS | 2020-12-30T10:45:07 |
| YYYY-MM-DD T HH:MM:SS.SSS | 2020-12-30T10:45:07.123 |
| HH:MM | 10:45 |
| HH:MM:SS | 10:45:07 |
| HH:MM:SS.SSS | 10:45:07.123 |
| 今 | 2020-12-30 10:45:07 |
| DDDDDDDDDD | 2459213.94799769 |
now 時間文字列は、協定世界時(UTC)を使用して現在の日付と時刻を返します。
DDDDDDDDDD 時間文字列は、浮動小数点値として表されるユリウス日数です。
タイムストリングはどのように機能しますか?
SQLiteの日付と時刻の関数を使用する場合は、時間文字列を指定する必要があります。この時間文字列は、フォーマットまたは操作を実行しようとしている日付/時刻を表します。
指定する時間文字列は、上記の表の有効な形式の1つに準拠している必要があります。
サンプルコード
上記の表の時間文字列のいくつかを示す基本的な例を次に示します。
.mode line
SELECT
datetime('2020-12-30'),
datetime('now'),
datetime('2459213.94799769'); 結果:
datetime('2020-12-30') = 2020-12-30 00:00:00
datetime('now') = 2020-04-24 22:58:31
datetime('2459213.94799769') = 2020-12-30 10:45:07 タイムゾーンインジケーター
時刻を含むすべてのタイムストリング(HH:MM、HH:MM:SSなど)には、タイムゾーンインジケーターを含めることもできます。これは、上記の表の行2から行10までのすべての時間文字列を意味します。
タイムゾーンインジケーターは、 [+-]HH:MMの形式をとることができます。 または単にZ 。
Z SQLiteの日付と時刻の関数はすでにUTC/zulu時刻を内部で使用しているため、サフィックスは何も変更しません。
ゼロ以外のHH:MM ズールー時間を計算するために、指定された日時から接尾辞が差し引かれます。
タイムゾーンインジケーターの例
実例をいくつか示します。
SELECT
datetime('10:45Z'),
datetime('10:45+01:00'),
datetime('10:45-01:00'); 結果:
datetime('10:45Z') = 2000-01-01 10:45:00
datetime('10:45+01:00') = 2000-01-01 09:45:00
datetime('10:45-01:00') = 2000-01-01 11:45:00