SQLite 日期和時間的操作( date / time / datetime)
SQLite 日期和時間的操作 ( date / time / datetime)
資料來源:http://pro.ctlok.com/2010/08/sqlite-date-time.html
第一個方法很明顯會返回一個字串,但不包括時間內容。
第二個方法會返回一個時間字串,但不包括日期內容。
第三個方法會返回一個日期加時間的字串。
第四個有點特殊,自己看一看 Wiki: 儒略日
第五個則可以將日期時間轉為你想要的格式。
時間字串只可以是以下類型:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD
解釋一下: YYYY 代表年,MM 代表月份,DD 代表日子,HH 代表小時,MM 代表分鐘,SS 代表秒。
依第四行的格式代表現在日期時間會是: 2010-08-02 16:02:32.562
第一行只是日期,並沒有時間內容。
第二至七行是日期連時間,第四到第七行要留意,日期和時間中間有一個 T,這個是一個分隔號,用來分開日期和時間的,是 ISO 8601 的時間格式。
第八至十行只是時間,並沒有日期內容。
第十一行有些特殊,輸入 now 會拿到系統現在時間。
第十二行則是 Unix Time Stamp。
時間格式:
%d – 月份內的日期
%f – 秒數 (準確至千份一秒)
%H – 小時
%j – 年份內的第幾日 (沒有潤年最大 365, 潤年最大 366)
%m – 月份
%M – 分鐘
%s – Unix Time Stamp
%w – 星期 (0 是星期日,6 是星期六)
%W – 年份內的第幾個星期
%Y – 年份
%% – 顯示 % 時使用
NNN days – 在現時日期加上多少日 (加兩日 2 days)
NNN hours – 在現時時間加上多少小時
NNN minutes – 在現時時間加上多少分鐘
NNN.NNNN seconds – 在現時時間加上多少秒
NNN months – 在現時日期加上多少個月
NNN years – 在現時日期加上多少年
start of month – 返回現時日期的月份的第一日,零時零分
start of year – 返回現時日期的年份,第一個月,第一日,零時零分
start of day – 返回現在時間的零時零分
weekday N – 返回未到但最接迎的星期日子 (0 是星期日,6 是星期六)
unixepoch – 時間字串為 Unix Time Stamp 才要使用
localtime – 加上你現在時區的時間,台灣是 GMT +8,即是現在時間加上 8 小時
utc
拿取系統現在日期:
SELECT date(‘now’);
拿取系統現在時間:
SELECT time(‘now’, ‘localtime’);
拿取系統現在日期和時間:
SELECT datetime(‘now’, ‘localtime’);
拿取昨天日期:
SELECT date(‘now’, ‘-1 days’);
拿取後天日期:
SELECT date(‘now’, ‘2 days’);
拿取最近的星期五日期:
SELECT date(‘now’, ‘weekday 5’);
將 Unix Time Stamp 轉為日期和時間:
SELECT datetime(1280738712, ‘unixepoch’, ‘localtime’);
將現在日期時間轉換為 Unix Time Stamp:
SELECT strftime(‘%s’, ‘now’);
將日期時間格式化:
SELECT strftime(‘%d/%m/%Y %H:%M’, ‘now’);