SQLite 日期时间函数 julianday()

返回上一级

SQLite 时间时间函数 julianday 返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数

julianday(timestring, modifier, modifier, ...)

此函数相当于

strftime('%J',timestring, modifier, modifier, ...)
参数 说明
timestring 字符串格式的时间
如果是 now,则返回当前的日期时间
如果是数字,则必须添加修饰符 unixepoch 表示传递的是时间戳
如果是其它格式的字符串,则必须是 SQLite 支持的日期时间格式
modifier 修饰符,会改变返回的返回的日期

日期时间格式

julianday() 支持的日期时间格式有

2018 年 1 月 2 日 3 点 4 分 5 秒 600 毫秒 为例

日期时间格式 范例
YYYY-MM-DD 2018-01-02
YYYY-MM-DD HH:MM 2018-01-02 03:04
YYYY-MM-DD HH:MM:SS.SSS 2018-01-02 03:04:05.600
MM-DD-YYYY HH:MM 01-02-2018 03:04
HH:MM 03:04
YYYY-MM-DDTHH:MM 2018-01-02 03:04
HH:MM:SS 03:04:05
YYYYMMDD HHMMSS 20180102 030405
now 2018-01-02
DDDDDDDDDD 返回当前时间戳,1523496694160

`'T' 是用于分隔日期和时间的文字字符

修饰符

julianday() 函数中可用的修饰符 modifier

NNN days
NNN hours
NNN minutes
NNN.NNNN seconds
NNN months
NNN years
start of month
start of year
start of day
weekday N
unixepoch
localtime
utc

范例

  1. 返回从格林尼治时间的公元前 4714 年 11 月 24 日正午起到当前时间的天数

    SELECT julianday('now');
    

    输出结果如下

    julianday('now')
    ----------------
    2458220.59892027
    
  2. 如果是数字或者数字字符串,则必须指定修饰符 unixepoch 表示传递的是时间戳

    SELECT julianday(2234,'unixepoch');
    

    输出结果如下

    julianday(2234,'unixepoch')
    ---------------------------
    2440587.52585648
    
  3. 如果是数字或者数字字符串,且没有指定修饰符 unixepoch 表示传递的是从格林尼治时间的公元前 4713 年 11 月 24 日正午算起的天数

    SELECT julianday(0);
    

    输出结果如下

    julianday(0)
    ------------
    0.0
    

    传入 3

    SELECT julianday(3);
    

    输出结果如下

    julianday(3)
    ------------
    3.0
    
  4. 如果传递的是合法的 SQLite 格式,比如 2018-01-02 03:04:05 则返回从格林尼治时间的公元前 4714 年 11 月 24 日正午起到传入时间的天数

    SELECT julianday('2018-01-02 03:04:05');
    

    输出结果如下

    julianday('2018-01-02 03:04:05')
    --------------------------------
    2458120.62783565
    
  5. 如果要将时间转换为本地时间,可以使用 localtime 修饰符

    SELECT julianday('2018-01-02 03:04:05', 'localtime');
    

    输出结果如下

    julianday('2018-01-02 03:04:05', 'localtime')
    ---------------------------------------------
    2458120.96116898
    
  6. 如果要将本地时间转换为格林威治时间(utc),可以使用 utc 修饰符

    SELECT julianday('2018-01-02 03:04:05', 'utc');
    

    输出结果如下

    julianday('2018-01-02 03:04:05', 'utc')
    ---------------------------------------
    2458120.29450231
    

返回上一级

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.