SQLite juliandday()函式


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>