SQLite库笔记:日期和时间函数
人民网>>社会·法治

SQLite库笔记:日期和时间函数

2025-06-24 12:20:54 | 来源:人民网
小字号

1. 函数概述。

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

1。

date(time-value, modifier, modifier, ...)。

返回。YYYY-MM-DD。格式。的日期。

2。

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

返回HH:MM:SS格式的时间。

3。

datetime(time-value, modifier, modifier, ...)。

回YYYY-MM-DD HH:MM:SS。格式的日期时间。

4。

julianday(time-value, modifier, modifier, ...)。

回到格林尼治时间公元前 4714 年 11 月 24 日中算起的天数。

5。

unixepoch(time-value, modifier, modifier, ...)。

返回unix时间戳󿼌即1970-01-01 00:00:00 UTC以来的秒数。

6。

strftime(format, time-value, modifier, modifier, ...)。

返回format指定格式的日期时间。

7。

timediff(time-value A, time-value B)。

返回字符串󿀌字符串被描述为到达时。时间A必须添加到B。

标准中支持strftime()format格式字符串 C 库的 strftime()函数中最常见的替换项,以及两个新的替换项,即 %f 和 %J。 以下是有效 strftime()完整的替换列表,截至SQLite版本 3.46.0 (2024-05-23)。SQLite 早期版本可能不支持所有替换。如果没有定义或不支持,请看到替换�结果为 NULL。

%d。

月份的第几天: 01-31。

%e。

月份的第几天,没有前导零: 1-31。

%f。

秒的小数部分: SS.SSS。

%F。

ISO 8601日期: YYYY-MM-DD。

%G。

ISO 8601年份对应%V。

%g。

2位ISO 8601年份对应%V。

%H。

小时: 00-24。

%I。

12小时制: 01-12。

%j。

年份的第几天: 001-366。

%J。

#xff08;小数)

%k。

没有前导零的小时: 0-24。

%l。

12小时,没有前导零: 1-12。

%m。

月份: 01-12。

%M。

分钟: 00-59。

%p。

൪取决于小时;AM" 或"PM"

%P。

൪取决于小时;am" or "pm"

%R。

ISO 8601时间: HH:MM。

%s。

自1970-01-01以来的秒数。

%S。

秒: 00-59。

%T。

ISO 8601时间: HH:MM:SS。

%U。

年的第几周(00-53)-从第一个星期日开始,第01周。

%u。

一周的第几天(1-7),周一是第一天。

%V。

ISO 8601年中的第几周。

%w。

一周的第几天(0-6),周日为0。

%W。

一年的第几周 (00-53) – 从第一个星期日开始,第01周。

%Y。

年份: 0000-9999。

%%。

%。

strftime()更灵活󿀌strftime()可以表示其他日期和时间函数:

函数。

等同于strftime()。

date(...)。

strftime('%Y-%m-%d', ...)。

time(...)。

strftime('%H:%M:%S', ...)。

datetime(...)。

strftime('%Y-%m-%d %H:%M:%S', ...)。

julianday(...)。

strftime('%J', ...)。

2. time-value时间字符串。

上表中的time-value时间字符串通常是一个字符串,可使用以下格式:

YYYY-MM-DD。
YYYY-MM-DD HH:MM。
YYYY-MM-DD HH:MM:SS。
YYYY-MM-DD HH:MM:SS.SSS。
YYYY-MM-DDTHH:MM。
YYYY-MM-DDTHH:MM:SS。
YYYY-MM-DDTHH:MM:SS.SSS。
HH:MM。
HH:MM:SS。
HH:MM:SS.SSS。
now。
DDDDDDDDDD。

“上述格式中标红”T“是单独的文字字符。倒数第二格式字符串“now",可转换为当前日期。

3. modifier修饰符。

对于除 timediff()除此之外的所有日期/时间函数, time-value 参数后面可以用零或多个modifier修改符号,这些修饰符更改日期时间。每个修饰符都用于左侧时间值的转换。注意,顺序很重要。可用的装饰符如下。

  •     NNN days。
  •     NNN hours。
  •     NNN minutes。
  •     NNN seconds。
  •     NNN months。
  •     NNN years。
  •     ±HH:MM。
  •     ±HH:MM:SS。
  •     ±HH:MM:SS.SSS。
  •     ±YYYY-MM-DD。
  •     ±YYYY-MM-DD HH:MM。
  •     ±YYYY-MM-DD HH:MM:SS。
  •     ±YYYY-MM-DD HH:MM:SS.SSS。
  •     ceiling。
  •     floor。
  •     start of month。
  •     start of year。
  •     start of day。
  •     weekday N。
  •     unixepoch。
  •     julianday。
  •     auto。
  •     localtime。
  •     utc。
  •     subsec。
  •     subsecond。

4. 示例。

计算当前日期:

sqlite> select date(); 2024-08-09。

unix时间戳计算日期和时间,unix时间戳计算日期和时间,xff1a;

sqlite> select datetime(1092941466, 'unixepoch');2004-08-19 18:51:06sqlite> select unixepoch('2004-08-19 18:51:06');1092941466。

计算2024-01-01 12:00:距离1970-01-01有多长时间?#xff1a;

sqlite> select timediff('2024-01-01 12:00:00', '1970-01-01');+0054-00-00 12:00:00.000。

计算当前日期(UTC)、当地时区的日期时间:

sqlite> select strftime('%F %T');2024-08-09 13:57:04sqlite> select strftime('%Y-%m-%d %H:%M:%S');2024-08-09 13:57:04sqlite> select strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime');2024-08-09 21:57:04。

 。

 。

注意:SQLite默认为UTC时间󿼌获得当地时间可以添加'localtime'修饰符。

(责编:人民网)

分享让更多人看到