SQLite julianday()
函数应用修饰符,然后将日期作为输入日期后的儒略日(Julian day,JD)返回。
儒略日(Julian day,JD)是指由公元前4713年1月1日,协调世界时中午12时开始所经过的天数,多为天文学家采用,用以作为天文学的单一历法,把不同历法的年表统一起来。如果计算相隔若干年的两个日期之间间隔的天数,利用儒略日就比较方便。
语法:
julianday(timestring [, modifier1, modifier2, ... modifier_n ] )
示例1:
检索当前日期:
SELECT julianday('2017-09-13'); SELECT julianday('2017-09-13 16:45'); SELECT julianday('2017-09-13 16:45:30'); SELECT julianday('now');
执行上面代码,得到以下结果 -
sqlite> SELECT julianday('2017-09-13'); 2458009.5 sqlite> SELECT julianday('2017-09-13 16:45'); 2458010.19791667 sqlite> SELECT julianday('2017-09-13 16:45:30'); 2458010.19826389 sqlite> SELECT julianday('now'); 2457898.09934488 sqlite>
示例2:
检索本月的第一天:
SELECT julianday('2017-07-13', 'start of month'); SELECT julianday('now', 'start of month'); SELECT julianday('2017-08-15', '-6 days'); SELECT julianday('now', '-6 days');
执行上面查询语句,得到以下结果 -
sqlite> SELECT julianday('2017-07-13', 'start of month'); 2457935.5 sqlite> SELECT julianday('now', 'start of month'); 2457874.5 sqlite> SELECT julianday('2017-08-15', '-6 days'); 2457974.5 sqlite> SELECT julianday('now', '-6 days'); 2457892.10142766 sqlite>
示例3:
检索本月的最后一天:
SELECT julianday('2017-09-07', 'start of month', '+1 month', '-1 day'); SELECT julianday('now', 'start of month', '+1 month', '-1 day'); SELECT julianday('2017-09-07', '+24 days'); SELECT julianday('now', '+24 days');
执行上面代码,得到以下结果 -
sqlite> SELECT julianday('2017-09-07', 'start of month', '+1 month', '-1 day'); 2458026.5 sqlite> SELECT julianday('now', 'start of month', '+1 month', '-1 day'); 2457904.5 sqlite> SELECT julianday('2017-09-07', '+24 days'); 2458027.5 sqlite> SELECT julianday('now', '+24 days'); 2457922.10232523 sqlite>
示例4:
在当前日期上添加/减去年数和天数:
SELECT julianday('2017-09-14', '+2 years'); SELECT julianday('now', '+5 years'); SELECT julianday('now', '-7 days');
执行上面代码,得到以下结果 -
sqlite> SELECT julianday('2017-09-14', '+2 years'); 2458740.5 sqlite> SELECT julianday('now', '+5 years'); 2459724.10358212 sqlite> SELECT julianday('now', '-7 days'); 2457891.10358736 sqlite>