MySQLとSQLiteの日付型書式の比較
MySQLのDATE_FORMATをSQLiteで使うために変換する方法を調査した時のメモ
日付型書式
MySQL | SQLite | |||
---|---|---|---|---|
年(4桁) | %Y | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%Y'); 結果:2019 |
%Y | 例:SELECT STRFTIME('%Y', '2019-04-01 05:06:07'); 結果:2019 |
年(2桁) | %y | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%y'); 結果:19 |
||
月(0埋め:01~12) | %m | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%m'); 結果:04 |
%m | 例:SELECT STRFTIME('%m', '2019-04-01 05:06:07'); 結果:04 |
月(0埋めなし:1~12) | %c | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%c'); 結果:4 |
||
日(0埋め:01~31) | %d | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%d'); 結果:01 |
%d | 例:SELECT STRFTIME('%d', '2019-04-01 05:06:07'); 結果:01 |
日(0埋めなし:1~31) | %e | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%e'); 結果:1 |
||
時間(0埋めの24時間:01~24) | %H | 例:SELECT DATE_FORMAT('2019-04-01 14:06:07', '%H'); 結果:14 |
%H | 例:SELECT STRFTIME('%H', '2019-04-01 14:06:07'); 結果:14 |
時間(0埋めの12時間:01~12) | %h | 例:SELECT DATE_FORMAT('2019-04-01 14:06:07', '%h'); 結果:02 |
||
時間(0埋めなしの24時間:1~24) | %k | 例:SELECT DATE_FORMAT('2019-04-01 17:06:07', '%k'); 結果:17 |
||
時間(0埋めなしの12時間:1~12) | %l | 例:SELECT DATE_FORMAT('2019-04-01 17:06:07', '%l'); 結果:5 |
||
分(00~59) | %i | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%i'); 結果:06 |
%M | 例:SELECT STRFTIME('%M', '2019-04-01 05:06:07'); 結果:06 |
秒(00~59) | %S | 例:SELECT DATE_FORMAT('2019-04-01 05:06:07', '%S'); 結果:07 |
%S | 例:SELECT STRFTIME('%S', '2019-04-01 05:06:07'); 結果:07 |
曜日(日曜日が0、土曜日が6:0~6) | %w | 例:SELECT DATE_FORMAT('2019-04-10 05:06:07', '%w'); 結果:3 |
%w | 例:SELECT STRFTIME('%w', '2019-04-10 05:06:07'); 結果:3 |
曜日名(日曜日がSunday:Sunday,Monday,Wednesday,Wednesday,Thursday,Friday,Saturday) | %W | 例:SELECT DATE_FORMAT('2019-04-10 05:06:07', '%W'); 結果:Wednesday |
||
'1970-01-01 00:00:00'(UTC)からの経過秒数 | %s | 例:SELECT STRFTIME('%s', CURRENT_TIMESTAMP); 結果:1554062767 |
現在の日時を取得
MySQLの場合
SELECT NOW(); SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H時%i分%S秒'); ※結果 2019-04-01 05:06:07 2019年04月01日 05時06分07秒
SQLiteの場合
SELECT DATETIME('NOW'); SELECT STRFTIME('%Y年%m月%d日 %H時%M分%S秒', 'NOW'); ・LOCALTIME:日本時間(UTC +09:00) SELECT DATETIME('NOW', 'LOCALTIME'); SELECT STRFTIME('%Y年%m月%d日 %H時%M分%S秒', 'NOW', 'LOCALTIME'); ※結果 ・UTC(協定世界時) 2019-03-31 20:06:07 2019年03月31日 20時06分07秒 ・JST(日本標準時) 2019-04-01 05:06:07 2019年04月01日 05時06分07秒
UNIXタイムスタンプを取得
MySQLの場合
SELECT UNIX_TIMESTAMP(); SELECT UNIX_TIMESTAMP('2019-04-01 05:06:07'); ※結果 1554062767 1554062767
SQLiteの場合
SELECT STRFTIME('%s', CURRENT_TIMESTAMP); SELECT STRFTIME('%s', DATETIME('2019-04-01 05:06:07', '-9 HOURS')) ※結果 1554062767 1554062767