SQLite是一个关系数据库管理系统(RDMS),它的结构非常简单,因为它没有服务器,它把数据存储在它所运行的本地机器的操作系统上。SQLite支持日期和时间的不同功能,可以帮助对日期和时间进行相应的管理。每个数据库管理系统要么有DateTime数据类型,要么有函数,要么都有。
在这篇文章中,我们将通过实例来详细讨论DateTime数据类型和函数。
SQLite中DateTime的数据类型
数据库使用数据类型这一术语来表示可以存储的数据格式,例如,SQLite支持Integer、Text、Blob和Real数据类型。SQLite并不像MySQL那样支持用于存储日期和时间的数据类型,相反,它包含各种内置函数(),这些函数通过使用数据类型来存储日期和时间;Integer、Real和Text。
SQLite中的日期时间函数
这些函数接受不同数量的输入,并按照指定的过程返回一个单一的输出。有很多内置的函数()被用来获得一些特定的结果,如DateTime函数。
SQLite中的日期和时间函数的类型
在SQLite中,有五种不同类型的内置函数用于存储和执行任务。
这些函数将在实例的帮助下逐一进行详细解释。
SQLite中的date()函数
date()函数用来获取YYY-MM-DD格式的日期。我们也可以通过添加/减去天数、月数和年数来修改日期,或者在执行函数时获得日期。
使用date()的一般语法是。
DATE(date-Time-string, [modifier1,modifier2...,modifierN])。
在上面的语法中,日期-时间字符串是一个包含要应用该函数的日期的字符串,而修饰符是一个必须执行的任务,可以是减去或加上年、月、日。
如果我们想获得当前日期,我们使用输入参数 "now",例如,运行以下命令。
SELECT DATE('now')。
如果我们想通过在输入参数中提供日期和时间来只提取日期,我们将使用如下函数。
select date('2021-10-06 12:54:12') as 'date()'。
如果我们想获得当前月份的最后一个日期,我们将运行以下命令。
SELECT DATE('now','start of month','+1 month','-1 day') AS 'Last Date of the Month';
我们可以使用函数date()添加任何日期中的月、年和日。例如,我们使用date()在当前日期中添加9年,如。
SELECT DATE('now','+9 year')。
同样,我们也可以减去月份、年份和日期,例如,现在的月份是10月,我们可以用以下方法得到3个月前的日期。
SELECT DATE('now','-3 month')。
SQLite中的time()函数
time()函数是用来获取 HH:MM:SS 格式的时间。我们也可以通过添加/减去小时、分钟和秒来修改时间,或者我们可以获得执行该函数时的当前时间。
使用time()的一般语法是。
TIME(date-Time-string, [modifier1,modifier2...,modifierN])。
在上述语法中,日期-时间字符串是一个包含要应用该函数的日期的字符串,修改器是一个必须执行的任务,可以是减去或加上小时、分钟和秒。
如果我们想获得当前时间,我们使用输入参数 "now",例如,运行以下命令。
SELECT TIME('now')。
如果我们想通过在输入参数中提供日期和时间,只获得提取的时间,我们将使用该函数,如。
select time('2021-10-06 06:05:45') as 'time()'。
如果我们想获得当前时间的15分钟后的时间,我们将运行以下命令。
SELECT TIME(),TIME('now','+15 minutes')。
输出显示了当前时间以及15分钟后的时间,因为我们运行了两个函数,一个是使用time()的当前时间,另一个是使用time('now','+15分钟')的15分钟后的时间。类似地,我们可以从当前时间得到四小时前的时间,如
SELECT TIME('now','-4 hours')。
SQLite中的函数datetime()
datetime()函数用于获取YYY:MM:DD HH:MM:SS格式的时间。我们也可以通过添加/减去年、月、日、小时、分钟和秒来修改日期和时间,或者我们可以在执行函数时获得当前的日期和时间。
使用datetime()的一般语法是。
datetime(date-time-string, [modifier1,modifier2...,modifierN])。
在上述语法中,日期-时间字符串是一个包含日期或时间的字符串,该函数将应用于此,而修改器是一个必须执行的任务,可以是减去或加上分钟、秒、小时、天、年和月。
为了显示当前的日期和时间,在执行的时候,我们将运行以下命令。
SELECTdatetime('now')。
现在我们有一个表Employee,为了显示这个表,执行下面的命令。
SELECT * FROMEmployee;
现在,如果我们想找出员工有资格获得第一次增薪的日期。根据公司的政策,在入职6个月后应该获得增薪,所以将执行以下SQLite查询。
SELECTemp_id,emp_name,joining_date, DATE(join_date,'6 months') AS 'Appraisal date' FROMEmployee;
在输出结果中,我们可以看到员工将获得第一次加薪的日期。
SQLite中的julianday()函数
julianday()函数有助于找出一年中的朱利安日,该函数的一般语法如下。
julianday(date-Time-string, [modifier1,modifier2...,modifierN])
与时间和日期函数的语法类似,它也需要两个参数并返回一个输入。让我们举个例子,寻找一个人出生后的总天数;如果一个人在1995年8月20日出生,使用julianday()函数可以很容易地显示到今天的总天数。
SELECTjulianday('now') -julianday('1995-08-20')。
输出结果显示,一个人大约活了9544天。
SQLite中的strftime()函数
strftime()函数用于转换日期或时间的字符串,以获得YYY:MM:DD HH:MM:SS格式的日期和时间。
strftime()的一般语法是。
strftime(format,date-time-string, [modifier1,modifier2...,modifier])。
上述语法与之前讨论的语法相同,但其中的新参数是 "format",人们可以定义他想要的输出格式。
符号 | 参数 |
---|---|
Y | 年 |
m | 月 |
d | 日期 |
S | 第二 |
M | 分钟 |
H | 小时 |
例如,我们希望当前日期和时间的格式为MM:YYY:DD SS:MM:HH,我们将运行以下命令。
SELECTstrftime('%m/%Y/%d %S/%M/%H','now')。
现在我们想以这种格式显示日期和时间,YYYY:MM HH:MM,所以执行命令为。
SELECTstrftime('%Y/%m %H/%M','now')。
在SQLite中,日期的范围是从0000-01-01到9999-12-31,其中格式为年-月-日。同样地,时间的范围是从00:00:00到23:59:59,格式是小时:分钟:秒。
像其他数据库一样,SQLite提供了各种内置函数,使其易于用于不同的应用。日期和时间函数帮助我们在实时处理不同任务中的日期和时间时提供便利。这篇文章与SQLite中用于管理日期和时间的函数有关。所有类型的日期和时间函数在本文中都有解释,并附有例子,还描述了这些函数适用的日期和时间函数的范围。