SQLite 函数

SQLite DATETIME() 函数以"YYYY-MM-DD HH:MM:SS"格式返回日期/时间文本。

通过该函数我们可以格式化日期时间、对日期进行增加或者减少、获取特定日期和时间值。

语法

DATETIME(time-value, modifier, modifier, ...) 

参数

time-value

必需。 指定时间值。它可以是以下之一:

时间值描述
YYYY-MM-DD日期值格式为"YYYY-MM-DD"
YYYY-MM-DD HH:MM日期值格式为"YYYY-MM-DD HH:MM"
YYYY-MM-DD HH:MM:SS日期值格式为"YYYY-MM-DD HH:MM:SS"
YYYY-MM-DD HH:MM:SS.SSS日期值格式为"YYYY-MM-DD HH:MM:SS.SSS"
YYYY-MM-DDTHH:MM日期值格式为"YYYY-MM-DDTHH:MM",其中 T 是分隔日期和时间的文字字符
YYYY-MM-DDTHH:MM:SS日期值格式为"YYYY-MM-DDTHH:MM:SS",其中 T 是分隔日期和时间的文字字符
YYYY-MM- DDTHH:MM:SS.SSS日期值格式为"YYYY-MM-DDTHH:MM:SS.SSS",其中 T 是分隔日期和时间的文字字符
HH:MM格式为"HH:MM"的日期值
HH:MM:SS格式为"HH:MM:SS"的日期值
HH:MM:SS.SSS格式为"HH:MM:SS.SSS"的日期值
nownow 是用于返回当前日期。
DDDDDDDDDD儒略日期数字
modifier,modifier,...

可选。 指定修饰符。每个修饰符都是一个应用于其左侧时间值的转换。修饰符从左到右应用并且是累积的。可用的修饰符如下:

修饰符描述
[+-]NNN days日期添加/减去的天数
[+- ]NNN 小时日期添加/减去的小时数
[+-]NNN minutes添加的分钟数/减去日期
[+-]NNN.NNNN seconds添加/减去日期的秒数(和小数秒)
[+-]NNN months添加/减去日期的月数
[+-][+-]NNN years日期添加/减去的年数
start of month将日期移回到月初
start of year将日期移回年初
start of day将日期移回到一天的开始
weekday N将日期向前移动到工作日编号为 N 的下一个日期
(0=星期日、1=星期一、2=星期二、3=星期三、4=星期四、5=星期五、6=星期六)
unixepoch与 DDDDDDDDDD 格式一起使用,将日期解释为 UNIX 时间(即:自 1970-01-01 以来的秒数)
julianday与 DDDDDDDDDD 格式一起使用,强制将时间值数字解释为儒略日数字
auto与 DDDDDDDDDD 格式一起使用,将时间值解释为儒略日数字或 unix 时间戳,具体取决于其大小。
localtime将日期调整为本地时间,假设时间值以 UTC 表示
utc将日期调整为 utc,假设时间值以当地时间表示

返回值

以"YYYY-MM-DD HH:MM:SS"格式的文本形式返回日期/时间值。

示例:当前日期和时间

SQLite 'now' 时间值可用于获取当前日期和时间。

SELECT DATETIME('now');
Result: '2022-04-07 17:04:32' 

示例:该月的第一天

要获取该月的第一天,可以使用"start of month"修饰符。请参阅下面的示例:

SELECT DATETIME('2018-08-18 08:23:19', 'start of month');
Result: '2018-08-01 00:00:00'

SELECT DATETIME('now', 'start of month');
Result: '2022-04-01 00:00:00' 

示例:该月的最后一天

要获取该月的最后一天,首先,"start of month"修饰符为用于计算月份的开始日期,然后添加 1 个月,然后减去 1 天。

SELECT DATETIME('2018-08-18', 'start of month', '+1 month', '-1 day');
Result: '2018-08-31 00:00:00'

SELECT DATETIME('now', 'start of month', '+1 month', '-1 day');
Result: '2022-04-30 00:00:00' 

示例:添加/减去年份

添加/从时间值中减去年数,可以使用 [+-]NNN years修饰符。在下面的示例中,从给定的时间值中添加和减去 2 年。

SELECT DATETIME('2018-08-18 08:23:19', '+2 years');
Result: '2020-08-18 08:23:19'

SELECT DATETIME('2018-08-18 08:23:19', '-2 years');
Result: '2016-08-18 08:23:19' 

示例:添加/减去天数

从时间中添加/减去天数-值,可以使用[+-]NNN days修饰符。在下面的示例中,从给定时间值中添加和减去 10 天。

SELECT DATETIME('2018-08-18 08:23:19', '+10 days');
Result: '2018-08-28 08:23:19'

SELECT DATETIME('2018-08-18 08:23:19', '-10 days');
Result: '2018-08-08 08:23:19' 

示例:添加/减去小时

从时间中添加/减去小时-值,可以使用[+-]NNN hours修饰符。在下面的示例中,给定时间值添加和减去 5 小时。

SELECT DATETIME('2018-08-18 08:23:19', '+5 hours');
Result: '2018-08-18 13:23:19'

SELECT DATETIME('2018-08-18 08:23:19', '-5 hours');
Result: '2018-08-18 03:23:19' 

示例:添加/减去分钟

从时间中添加/减去分钟-value,可以使用[+-]NNN minutes修饰符。在下面的示例中,给定时间值添加和减去 30 分钟。

SELECT DATETIME('2018-08-18 08:23:19', '+30 minutes');
Result: '2018-08-18 08:53:19'

SELECT DATETIME('2018-08-18 08:23:19', '-30 minutes');
Result: '2018-08-18 07:53:19'