Skip to main content

SQLite date()函数的实例

SQLite date()函数简介

函数接受一个时间字符串和零个或多个修饰符作为参数。它以以下格式返回日期字符串:YYYY-MM-DD。

下面显示DATE()函数的语法:

DATE(timestring, modifier, modifier,...)

在这种语法中,每个修饰符都用于对其左侧的时间值应用变换。修饰符是从左到右应用的,因此,它们的顺序很重要。

例如,下面的语句返回一个月的最后一天:

SELECT 
DATE('now',
'start of month',
'+1 month',
'-1 day');

在本例中:

该功能的工作原理如下:

时间字符串格式

下表显示了可用的时间字符串格式:

笔记

按照ISO-8601的要求,在格式5到7中,“T”是日期和时间的分隔符。

now字符串以UTC为单位返回当前日期和时间。

DDDD是以浮点数表示的儒略日数。

修饰语

从日期中加/减一个值

前六个修饰符将±NNN的时间添加到之前的日期和时间。修饰符名称末尾的“s”字符是可选的。

追溯到年初、月和日

年初、月初和白班开始将日期和时间返回到年初、月和日。

工作日

“工作日”修饰符将日期提前到下一个日期,其中工作日编号为0(星期日)、1(星期一)等。如果该日期已经在所需的工作日,则“工作日”修饰符将不起任何作用,并保持日期不变。

UTC和当地时间

datetime(“now”)返回当前UTC时间:

SELECT DATETIME('now');

但是,DATETIME('now','localtime')返回当前的本地时间

SELECT DATETIME('now','localtime');

最好将日期时间存储为UTC,然后在应用程序中,可以将UTC时间转换为本地时间。

unixepoch

unixepoch修饰符导致DDDD被解释为Unix时间,这是自1970年以来的秒数。

SQLite DATE()函数示例

以UTC时间获取当前日期:

SELECT DATE('now');

获取当前本地日期:

SELECT DATE('now','localtime');

从日期中减去日期:

SELECT DATE('2018-11-01','-1 day');

输出:

2018-10-31

从日期中减去一个月:

SELECT DATE('2018-11-01','-1 month');

输出:

2018-10-01

从日期中减去一年:

SELECT DATE('2018-11-01','-1 year');

输出:

2017-11-01

添加日期:

SELECT DATE('2018-11-01','+1 day');

输出:

2018-11-02

添加一个月:

SELECT DATE('2018-11-01','+1 month');

输出:

2018-12-01

添加截止日期的年份:

SELECT DATE('2018-11-01','+1 year');

输出:

2019-11-01    

在本教程中,您学习了如何使用SQLite DATE()函数操作日期数据。