SQLite 函数

SQLite UNIXEPOCH() 函数获取一个日期并对其应用修饰符,然后将日期作为 UNIX 时间戳返回。

UNIX 时间戳是自 1970-01-01 00:00:00 UTC 以来的秒数。即使输入时间值具有毫秒精度,此函数始终返回整数。

语法

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

    参数

    time-value

    必填。 指定时间值。它可以是以下之一:

    时间值描述
    YYYY-MM-DD日期值格式为"YYYY-MM-DD"
    YYYY-MM-DD HH:MM日期值格式为"YYYY-MM-DD HH:MM"
    YYYY-MM-DD HH:MM:SS日期值格式为"YYYY-MM-DD HH:MM:SS"
    YYYY-MM-DD HH:MM:SS.SSS日期值格式为"YYYY-MM-DD HH:MM:SS.SSS"
    YYYY-MM-DDTHH:MM日期值格式为"YYYY-MM-DDTHH:MM",其中 T 是分隔日期和时间的文字字符
    YYYY-MM-DDTHH:MM:SS日期值格式为"YYYY-MM-DDTHH:MM:SS",其中 T 是分隔日期和时间的文字字符
    YYYY-MM- DDTHH:MM:SS.SSS日期值格式为"YYYY-MM-DDTHH:MM:SS.SSS",其中 T 是分隔日期和时间的文字字符
    HH:MM格式为"HH:MM"的日期值
    HH:MM:SS格式为"HH:MM:SS"的日期值
    HH:MM:SS.SSS格式为"HH:MM:SS.SSS"的日期值
    nownow 是用于返回当前日期。
    DDDDDDDDDD儒略日期数字
    modifier,modifier,...

    可选。 指定修饰符。每个修饰符都是一个应用于其左侧时间值的转换。修饰符从左到右应用并且是累积的。可用的修饰符如下:

    修饰符描述
    [+-]NNN days日期添加/减去的天数
    [+- ]NNN 小时日期添加/减去的小时数
    [+-]NNN minutes添加的分钟数/减去日期
    [+-]NNN.NNNN seconds添加/减去日期的秒数(和小数秒)
    [+-]NNN months添加/减去日期的月数
    [+-][+-]NNN years日期添加/减去的年数
    start of month将日期移回到月初
    start of year将日期移回年初
    start of day将日期移回到一天的开始
    weekday N将日期向前移动到工作日编号为 N 的下一个日期
    (0=星期日、1=星期一、2=星期二、3=星期三、4=星期四、5=星期五、6=星期六)
    unixepoch与 DDDDDDDDDD 格式一起使用,将日期解释为 UNIX 时间(即:自 1970-01-01 以来的秒数)
    julianday与 DDDDDDDDDD 格式一起使用,强制将时间值数字解释为儒略日数字
    auto与 DDDDDDDDDD 格式一起使用,将时间值解释为儒略日数字或 unix 时间戳,具体取决于其大小。
    localtime将日期调整为本地时间,假设时间值以 UTC 表示
    utc将日期调整为 utc,假设时间值以当地时间表示

    返回值

    以 UNIX 时间戳形式返回日期。

    示例:简单日期

    SQLite UNIXEPOCH() 函数可用于将简单日期转换为 UNIX 时间戳。

    SELECT UNIXEPOCH('2018-08-18');
    Result: '1534550400'
    
    SELECT UNIXEPOCH('2018-08-18 08:23:19');
    Result: '1534580599' 
    • 1
    • 2
    • 3
    • 4

    示例:当前日期和时间

    SQLite 'now' 时间值可用于获取当前日期和时间的 UNIX 时间戳。

    SELECT UNIXEPOCH('now');
    Result: '1649513012' 
    • 1

    示例:该月的第一天

    获取该月的第一天,可以使用"start of month"修饰符。请参阅下面的示例:

    SELECT UNIXEPOCH('2018-08-18 08:23:19', 'start of month');
    Result: '1533081600'
    
    SELECT UNIXEPOCH('now', 'start of month');
    Result: '1648771200' 
    • 1
    • 2
    • 3
    • 4

    示例:该月的最后一天

    要获取该月的最后一天,首先,"start of month"修饰符为用于计算月份的开始日期,然后添加 1 个月,然后减去 1 天。

    SELECT UNIXEPOCH('2018-08-18', 'start of month', '+1 month', '-1 day');
    Result: '1535673600'
    
    SELECT UNIXEPOCH('now', 'start of month', '+1 month', '-1 day');
    Result: '1651276800' 
    • 1
    • 2
    • 3
    • 4

    示例:添加/减去年份

    添加/从时间值中减去年数,可以使用 [+-]NNN 年修饰符。在下面的示例中,从给定的时间值中添加和减去 2 年。

    SELECT UNIXEPOCH('2018-08-18 08:23:19', '+2 years');
    Result: '1597738999'
    
    SELECT UNIXEPOCH('2018-08-18 08:23:19', '-2 years');
    Result: '1471508599' 
    • 1
    • 2
    • 3
    • 4

    示例:添加/减去天数

    从时间中添加/减去天数-值,可以使用[+-]NNN 天修饰符。在下面的示例中,从给定时间值中添加和减去 10 天。

    SELECT UNIXEPOCH('2018-08-18 08:23:19', '+10 days');
    Result: '1535444599'
    
    SELECT UNIXEPOCH('2018-08-18 08:23:19', '-10 days');
    Result: '1533716599' 
    • 1
    • 2
    • 3
    • 4

    示例:添加/减去小时

    从时间中添加/减去小时-值,可以使用[+-]NNN 小时修饰符。在下面的示例中,给定时间值添加和减去 5 小时。

    SELECT UNIXEPOCH('2018-08-18 08:23:19', '+5 hours');
    Result: '1534598599'
    
    SELECT UNIXEPOCH('2018-08-18 08:23:19', '-5 hours');
    Result: '1534562599' 
    • 1
    • 2
    • 3
    • 4

    示例:添加/减去分钟

    从时间中添加/减去分钟-value,可以使用[+-]NNN 分钟修饰符。在下面的示例中,给定时间值添加和减去 30 分钟。

    SELECT UNIXEPOCH('2018-08-18 08:23:19', '+30 minutes');
    Result: '1534582399'
    
    SELECT UNIXEPOCH('2018-08-18 08:23:19', '-30 minutes');
    Result: '1534578799' 
    • 1
    • 2
    • 3
    • 4