天天看点

SQLite3使用方法大全(三)之日期&时间基本函数时间字符串格式修饰符(Modifiers)函数输出格式化举例

基本函数

SQLite 支持以下五个日期和时间函数:

SQLite3使用方法大全(三)之日期&时间基本函数时间字符串格式修饰符(Modifiers)函数输出格式化举例

上述五个日期和时间函数把时间字符串作为参数。时间字符串后跟零个或多个 modifiers 修饰符。strftime() 函数也可以把格式字符串作为其第一个参数。下面将为您详细讲解不同类型的时间字符串和修饰符。

时间字符串格式

一个时间字符串可以采用下面任何一种格式:

SQLite3使用方法大全(三)之日期&时间基本函数时间字符串格式修饰符(Modifiers)函数输出格式化举例

您可以使用 “T” 作为分隔日期和时间的文字字符(例如序号6)。

修饰符(Modifiers)

时间字符串后边可跟着零个或多个的修饰符,这将改变有上述五个函数返回的日期和/或时间。任何上述五大功能返回时间。修饰符应从左到右使用,下面列出了可在 SQLite 中使用的修饰符:

SQLite3使用方法大全(三)之日期&时间基本函数时间字符串格式修饰符(Modifiers)函数输出格式化举例

函数输出格式化

SQLite 提供了非常方便的函数 strftime() 来格式化任何日期和时间。您可以使用以下的替换来格式化日期和时间:

SQLite3使用方法大全(三)之日期&时间基本函数时间字符串格式修饰符(Modifiers)函数输出格式化举例

举例

下面是计算当前日期:

sqlite> SELECT date('now');
--
           

下面是计算当前月份的最后一天:

sqlite> SELECT date('now','start of month','+1 month','-1 day');
--
           

下面是计算给定 Linux时间戳 1092941466 的日期和时间:

sqlite> SELECT datetime(, 'unixepoch');
-- ::
           

下面是计算给定 Linux系统时间戳 1092941466 相对本地时区的日期和时间:

sqlite> SELECT datetime(, 'unixepoch', 'localtime');
-- ::
           

下面是计算当前的 Linux系统时间戳:

sqlite> SELECT datetime(, 'unixepoch', 'localtime');

           

下面是计算美国”独立宣言”签署以来的天数:

sqlite> SELECT julianday('now') - julianday('1776-07-04');
86504.4775830326
           

下面是计算从 2004 年某一特定时刻以来的秒数:

sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
           

下面是计算当年 10 月的第一个星期二的日期:

sqlite> SELECT date('now','start of year','+9 months','weekday 2');
--
           

下面是计算从 Linux纪元算起的以秒为单位的时间(类似 strftime(‘%s’,’now’) ,不同的是这里有包括小数部分):

sqlite> SELECT (julianday('now') - )*;

           

在 UTC(世界标准时间) 与本地时间值之间进行转换,当格式化日期时,使用 utc 或 localtime 修饰符,如下所示:

sqlite> SELECT time('12:00', 'localtime');
::

sqlite>  SELECT time('12:00', 'utc');
::
           

转载于:http://www.ziqiangxuetang.com/sqlite/sqlite-date-time.html