SQLite 的時間函數跟 MySQL / MariaDB 差蠻多的,以下來看幾個差異點.
- Now
SQLite 沒有 now 函數,但 在 SQLite now 是一個時間字串參數,可以透過 SQLite 的時間函數獲得目前的日期與時間.SELECT datetime('now');
執行結果
2022-10-04 09:13:26
- datetime
datetime 這個函數可以取代 mysql 的 DATE_SUB 或 DATE_ADD 函數 (可增加或減去指定時間).
增加指定時間.SELECT datetime('now','1 day');
執行結果
2023-02-05 02:37:51
減去指定時間.
SELECT datetime('now','-1 day');
執行結果
2023-02-03 02:38:49
可使用時間單位,詳細使用請參考 https://www.sqlite.org/lang_datefunc.html#modifiers
- NNN days
- NNN hours
- NNN minutes
- NNN.NNNN seconds
- NNN months
- NNN years
- start of month
- start of year
- start of day
- weekday N
- unixepoch
- julianday
- auto
- localtime
- utc
- date
擷取日期.SELECT date('now');
執行結果
2022-10-04
- time
擷取時間.SELECT time('now');
執行結果
09:13:26
- strftime
在 MySQL 使用 DATE_FORMAT 函數依據指定格式來顯示日期時間,在 SQLite 使用 strftime.SELECT strftime('%Y-%m-%d %H:%M:%S','now');
執行結果
2022-10-04 09:16:54
參數說明請參考官方文件 – https://www.sqlite.org/lang_datefunc.html
- %d day of month: 00
- %f fractional seconds: SS.SSS
- %H hour: 00-24
- %j day of year: 001-366
- %J Julian day number (fractional)
- %m month: 01-12
- %M minute: 00-59
- %s seconds since 1970-01-01
- %S seconds: 00-59
- %w day of week 0-6 with Sunday==0
- %W week of year: 00-53
- %Y year: 0000-9999
- %% %
- julianday
在 MySQL 使用 UNIX_TIMESTAMP 函數回傳從 1970-01-0100:00:00 的秒數(無符號整數),在 SQLite 使用 julianday (回傳從格林威治 公元前 4714 年 11 月 24 日的天數).SELECT julianday('now');
執行結果
2459856.88878166
沒有解決問題,試試搜尋本站其他內容