鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ SQLite strftime()函數(shù)日期日間格式化
SQLite觸發(fā)器(刪除之前/之后)
SQLite Union All操作符
SQLite快速入門(mén)
SQLite LIMIT子句
SQLite更新查詢
SQLite插入查詢
SQLite創(chuàng)建數(shù)據(jù)庫(kù)
SQLite datetime()函數(shù)
SQLite now函數(shù)和時(shí)間格式化
SQLite左連接
SQLite AVG()函數(shù)
SQLite交叉連接(Cross Join)
SQLite運(yùn)算符
SQLite ORDER BY子句
SQLite聚合函數(shù)
SQLite Union操作符
SQLite是什么?
SQLite安裝
PHP連接SQLite數(shù)據(jù)庫(kù)
SQLite命令大全
SQLite LIKE子句
SQLite OR子句
SQLite內(nèi)連接(Inner Join)
SQLite日期和時(shí)間
SQLite WHERE子句
SQLite刪除表
Python連接SQLite數(shù)據(jù)庫(kù)
SQLite刪除觸發(fā)器
SQLite優(yōu)點(diǎn)和缺點(diǎn)
SQLite連接(JOIN子句)
SQLite數(shù)據(jù)類(lèi)型
SQLite外連接(Outer Join)
SQLite COUNT()函數(shù)
SQLite主鍵
SQLite觸發(fā)器(插入之前/之后)
SQLite HAVING子句
SQLite IN運(yùn)算符
SQLite選擇查詢
SQLite date()函數(shù)
SQLite MAX()函數(shù)
SQLite刪除查詢
SQLite分離數(shù)據(jù)庫(kù)
SQLite教程
SQLite GLOB子句
SQLite MIN()函數(shù)
SQLite導(dǎo)入數(shù)據(jù)
SQLite GROUP BY子句
SQLite表達(dá)式
SQLite語(yǔ)法大全
SQLite外鍵
SQLite觸發(fā)器
SQLite導(dǎo)出數(shù)據(jù)
SQLite juliandday()函數(shù)
SQLite創(chuàng)建表
Java連接SQLite數(shù)據(jù)庫(kù)
SQLite SUM()函數(shù)
SQLite特性/為什么要使用SQLite?
SQLite觸發(fā)器(更新之前/之后)
SQLite strftime()函數(shù)日期日間格式化
SQLite附加/選擇數(shù)據(jù)庫(kù)
SQLite DISTINCT子句
SQLite歷史
SQLite time()函數(shù)

SQLite strftime()函數(shù)日期日間格式化

SQLite strftime()是一個(gè)功能非常強(qiáng)大的函數(shù),可以用來(lái)獲取日期和時(shí)間,并且還可以執(zhí)行日期計(jì)算。

語(yǔ)法:

strftime(format, timestring [, modifier1, modifier2, ... modifier_n ] )

這里,format可以是以下任何一種:

編號(hào) 格式 解釋/描述
1 %Y 4位數(shù)表示年份(0000至9999)
2 %W 表示一年之中的第幾周(00至53)
3 %w 星期幾(06,其中0表示星期日)
4 %m 表示一年之中的第幾月(01至12)
5 %d 表示一個(gè)月之中的第幾天(00至31)
6 %H 小時(shí) (00 至 24)
7 %M 分鐘 (00 至 60)
8 %S 秒(00至59)
9 %s 1970-01-01以來(lái)的秒數(shù)
10 %f 小數(shù)秒(SS.SSS)
11 %j 一年之中的第幾天(001 至 366)
12 %J 儒略日的數(shù)字值

這里,timestring是一個(gè)日期值,可以是以下任何一個(gè):

編號(hào) timestring的值 描述
1 now 用來(lái)返回當(dāng)前日期的字面值
2 YYYY-MM-DD 指定格式為YYYY-MM-DD的日期值
3 YYYY-MM-DD HH:MM 指定格式為YYYY-MM-DD HH:MM的日期值
4 YYYY-MM-DD HH:MM:SS 指定格式為YYYY-MM-DD HH:MM:SS的日期值
5 YYYY-MM-DD HH:MM:SS.SSS 指定格式為YYYY-MM-DD HH:MM:SS.SSS的日期值
6 HH:MM 指定格式為HH:MM的日期值
7 HH:MM:SS 指定格式為HH:MM:SS的日期值
8 HH:MM:SS.SSS 指定格式為HH:MM:SS.SSS的日期值
9 YYYY-MM-DDTHH:MM 指定格式化為YYYY-MM-DDTHH:MM的日期值,其中T是一個(gè)文本字符分隔符,用于分隔日期和時(shí)間。
10 YYYY-MM-DDTHH:MM:SS 指定格式化為YYYY-MM-DDTHH:MM:SS的日期值,其中T是一個(gè)文本字符分隔符,用于分隔日期和時(shí)間。
11 YYYY-MM-DDTHH:MM:SS.SSS 指定格式化為YYYY-MM-DDTHH:MM:SS.SSS的日期值,其中T是一個(gè)文本字符分隔符,用于分隔日期和時(shí)間。
12 DDDDDDDDDD 指定儒略日的日期數(shù)
  • modifier1, modifier2, … modifier_n: 這些修飾符是可選的。這些字符與時(shí)間字符串一起使用來(lái)添加或減少時(shí)間,日期或年份。
編號(hào) 修辭符 描述
1 [+-]NNN years 用于指定添加/減去日期的年數(shù)
2 [+-]NNN months 用于指定添加/減去日期的月數(shù)
3 [+-]NNN days 用于指定添加/減去日期的天數(shù)
4 [+-]NNN hours 用于指定添加/減去日期的小時(shí)數(shù)
5 [+-]NNN minutes 用于指定添加/減去日期的分鐘數(shù)
6 [+-]NNN seconds 用于指定添加/減去日期的秒數(shù)
7 [+-]NNN.NNNN seconds 用于指定添加/減去日期的秒數(shù)(和小數(shù)秒)
8 start of year 用于將日期重新轉(zhuǎn)移到年初
9 start of month 用于將日期重新轉(zhuǎn)移到月初
10 start of day 用于將日期重新移動(dòng)到一天的開(kāi)始
11 weekday N 用于將日期向前移動(dòng)到工作日數(shù)為N的下一個(gè)日期(0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday)
12 unixepoch 它與DDDDDDDDDD時(shí)間字符串一起用于將日期解釋為UNIX時(shí)間(即:自1970-01-01以來(lái)的秒數(shù))
13 localtime 用于將日期調(diào)整為本地時(shí)間,假設(shè)時(shí)間戳以UTC表示
14 utc 它用于將日期調(diào)整為utc,假設(shè)時(shí)間戳以本地時(shí)間表達(dá)

示例1:

檢索當(dāng)前日期:

SELECT strftime('%Y %m %d', 'now');  
SELECT strftime('%Y-%m-%d %H:%M', 'now');

執(zhí)行上面語(yǔ)句,得到以下結(jié)果 -

sqlite> SELECT strftime('%Y %m %d', 'now');
2017 05 24
sqlite> SELECT strftime('%Y-%m-%d %H:%M', 'now');
2017-05-24 19:04
sqlite>

示例2:

檢索本月的第一天:

SELECT strftime('%Y-%m-%d', '2017-09-14', 'start of month');  
SELECT strftime('%Y-%m-%d', 'now', 'start of month');  
SELECT strftime('%Y-%m-%d', '2017-03-07', '-6 days');  
SELECT strftime('%Y-%m-%d', 'now', '-13 days');

執(zhí)行上面代碼,得到以下結(jié)果 -

sqlite> SELECT strftime('%Y-%m-%d', '2017-09-14', 'start of month');
2017-09-01
sqlite> SELECT strftime('%Y-%m-%d', 'now', 'start of month');
2017-05-01
sqlite> SELECT strftime('%Y-%m-%d', '2017-03-07', '-6 days');
2017-03-01
sqlite> SELECT strftime('%Y-%m-%d', 'now', '-13 days');
2017-05-11
sqlite>

示例3:

檢索本月的最后一天:

SELECT strftime('%Y-%m-%d', '2017-12-07', 'start of month', '+1 month', '-1 day');   
SELECT strftime('%Y-%m-%d', 'now', 'start of month', '+1 month', '-1 day');  
SELECT strftime('%Y-%m-%d', '2017-08-07', '+24 days');  
SELECT strftime('%Y-%m-%d', 'now', '+24 days');

執(zhí)行上面代碼,得到以下結(jié)果 -

sqlite> SELECT strftime('%Y-%m-%d', '2017-12-07', 'start of month', '+1 month', '-1 day');
2017-12-31
sqlite> SELECT strftime('%Y-%m-%d', 'now', 'start of month', '+1 month', '-1 day');
2017-05-31
sqlite> SELECT strftime('%Y-%m-%d', '2017-08-07', '+24 days');
2017-08-31
sqlite> SELECT strftime('%Y-%m-%d', 'now', '+24 days');
2017-06-17
sqlite>

示例4:

在當(dāng)前日期時(shí)間上添加/減去年數(shù)和天數(shù):

SELECT strftime('%Y-%m-%d', '2017-11-14', '+2 years');  
SELECT strftime('%Y-%m-%d', 'now', '-2 years');  
SELECT strftime('%Y-%m-%d', '2017-10-14', '+7 days');  
SELECT strftime('%Y-%m-%d', 'now', '-10 days');

執(zhí)行上面代碼,得到以下結(jié)果 -

sqlite> SELECT strftime('%Y-%m-%d', '2017-11-14', '+2 years');
2019-11-14
sqlite> SELECT strftime('%Y-%m-%d', 'now', '-2 years');
2015-05-24
sqlite> SELECT strftime('%Y-%m-%d', '2017-10-14', '+7 days');
2017-10-21
sqlite> SELECT strftime('%Y-%m-%d', 'now', '-10 days');
2017-05-14
sqlite>