つゆだくSQLite

3

 
 
メールを管理人に送信
メールアドレス:
コメント:
*書いた内容は公開されません

メニュー

トップページ
SQLite3トップページ
JavaScript(AJAX)トップページ
SQLite3
SQLiteのおすすめ書籍
ご意見ご要望
スポンサードリンク

SQLiteの日付関数

どういうのがSQLiteにあるのかわからないのでdate.cを読んだりして調べてみました。

現在時刻の取得

sqlite> select datetime('now');
2006-07-17 16:13:50
sqlite> select time('now');
16:14:29
sqlite> select date('now');
2006-07-17

'now' を指定すると現在時刻が取れるが、便利なコマンドが用意されている。

sqlite> select current_timestamp;
2006-07-17 16:19:59
sqlite> select current_time;
16:21:37
sqlite> select current_date;
2006-07-17

日本時間の取得

しかし実際にはタイムゾーンの設定がまずいだけなのかどうなのかわからないけど、+9:00しないといけないことに気づく。なので、current_XXX は使わないで、以下の方法で対応。

sqlite> select datetime('now')
   ...> , datetime('now', 'localtime');
2006-07-17 16:54:36|2006-07-18 01:54:36

変換系の関数

sqlite> select julianday('2000-01-01 00:00:00');
2451544.5
sqlite> select strftime('%Y-%m-%d %H:%M:%S','2000-01-01 12:34:56');
2000-01-01 12:34:56

正直juliandayを知らないのでwikipediaに聞いてみる。みてもどういう場合に便利なのかわからず。。

他のオプション

他にも色々できるようだ。まぁこの辺はアプリケーション側でやってしまえばよい気もするが。

sqlite> select datetime('2000-01-01 00:00:00', 'weekday 1');
2000-01-03 00:00:00
sqlite> select datetime('2000-01-01 00:00:00', '-1 year');
1999-01-01 00:00:00
sqlite> select datetime('2000-01-01 00:00:00', '+09:00:00');
2000-01-01 09:00:00
sqlite> select datetime(946684800,'unixepoch');
2000-01-01 00:00:00