SQLite date() 函数使用指南

SQLite date() 函数将通过一个时间值和修饰符指定的时间值转为一个 YYYY-MM-DD 格式的日期字符串。

date() 语法

这里是 SQLite date() 的语法:

date(time_value [, modifier, modifier, ...])

参数

time_value

可选的。时间值。时间值可以采用以下任何格式,如下所示。该值通常是一个字符串,但在格式为 12 的情况下,它可以是整数或浮点数。

  1. YYYY-MM-DD
  2. YYYY-MM-DD HH:MM
  3. YYYY-MM-DD HH:MM:SS
  4. YYYY-MM-DD HH:MM:SS.SSS
  5. YYYY-MM-DDTHH:MM
  6. YYYY-MM-DDTHH:MM:SS
  7. YYYY-MM-DDTHH:MM:SS.SSS
  8. HH:MM
  9. HH:MM:SS
  10. HH:MM:SS.SSS
  11. now - 表示当前时间
  12. DDDDDDDDDD.dddddd - 带小数部分的儒略历日期数
modifier

可选的。您可以使用零个或多个更改时间值。多个修饰符从左到右按照顺序应用。您可以使用如下的修饰符:

  1. NNN days - 时间值 time_value 加上 NNN
  2. NNN hours - 时间值 time_value 加上 NNN 小时
  3. NNN minutes - 时间值 time_value 加上 NNN 分钟
  4. NNN.NNNN seconds - 时间值 time_value 加上 NNN.NNNN
  5. NNN months - 时间值 time_value 加上 NNN 个月
  6. NNN years - 时间值 time_value 加上 NNN
  7. start of month - 回退到时间值 time_value 的月初
  8. start of year - 回退到时间值 time_value 的年初
  9. start of day - 回退到时间值 time_value 当天的开始
  10. weekday N - 将时间值 time_value 前进到工作日 N
  11. unixepoch - Unix 时间戳
  12. julianday - 返回儒略历
  13. auto
  14. localtime - 返回当前时间
  15. utc - 返回 utc 时间

NNN 表示一个数字。 可以是整数或者负数。 如果 NNN 是负数,则表示减去。

返回值

SQLite date() 函数返回一个 YYYY-MM-DD 格式的日期字符串。如果不提供任何参数, date() 函数返回当前的日期。

date() 示例

这里列举了一些示例以展示 SQLite date() 函数的常用的用法。

  • 使用 SQLite date() 函数获取当前日期:

    SELECT date();
    
    date()
    ----------
    2022-07-26
  • 或者,您可以使用带有时间值 'now' 的 SQLite date() 函数获取当前日期:

    SELECT date('now');
    
    date('now')
    -----------
    2022-07-26
  • 使用 SQLite date() 函数获取当年的第一天:

    SELECT date('now', 'start of year');
    
    date('now', 'start of year')
    ----------------------------
    2022-01-01
  • 使用 SQLite date() 函数获取当年的最后一天:

    SELECT date('now', 'start of year', '1 year', '-1 day');
    
    date('now', 'start of year', '1 year', '-1 day')
    ------------------------------------------------
    2022-12-31
  • 使用 SQLite date() 函数获取当年的母亲节:

    SELECT date('now', 'start of year', '4 months', 'weekday 0', '7 days');
    
    date('now', 'start of year', '4 months', 'weekday 0', '7 day
    ------------------------------------------------------------
    2022-05-08

    我们知道,母亲节是每年 5 月的第二个星期日。

    为了得到它,我们使用了时间值 'now',然后分别使用了几个修饰符:'start of year', '4 months', 'weekday 0', '7 days',那么 date() 函数的计算过程如下:

    1. 'now' - 获取当前时间
    2. 'start of year' - 将当前时间回退到当年的第一天,也就是 2022-01-01
    3. '4 months' - 从当年的第一天的基础上加上 4 个月,也就是 2022-05-01
    4. 'weekday 0' - 从 2022-05-01 开始获取第一个星期日,也就是 2022-05-01
    5. '7 days' - 从第一个星期日加上 7 天,也就是 5 月的第二个星期日,得到结果 2022-05-08