SQLite julianday()
hàm trả về số ngày kể từ buổi trưa ở Greenwich vào ngày 24 tháng 11 năm 4714 trước Công nguyên. (sử dụng lịch Gregorian Proleptic).
Nếu sử dụng lịch Julian dễ hiểu thì đây là Thứ Hai, ngày 1 tháng 1 năm 4713 trước Công nguyên.
Ngày Julian là số ngày liên tục kể từ đầu Thời kỳ Julian. Nó thường được các nhà thiên văn học, phần mềm, v.v. sử dụng để tính số ngày trôi qua giữa hai sự kiện.
Để sử dụng hàm này, bạn cần cung cấp chuỗi thời gian, cộng với bất kỳ công cụ sửa đổi (tùy chọn) nào. Công cụ sửa đổi cho phép bạn thay đổi ngày, chẳng hạn như thêm một số ngày, đặt nó thành giờ địa phương, v.v.
Cú pháp
Cú pháp như sau:
julianday(timestring, modifier, modifier, ...)
timestring
đối số phải là một chuỗi thời gian hợp lệ.
Công cụ sửa đổi modifier
đối số là tùy chọn. Bạn có thể cung cấp một hoặc nhiều bổ ngữ. Nếu bạn cung cấp một công cụ sửa đổi, nó phải là một công cụ sửa đổi hợp lệ.
Ví dụ
Dưới đây là một ví dụ để chứng minh julianday()
hàm đang được sử dụng với một đối số.
SELECT julianday('now');
Kết quả:
2458968.52391635
now
chuỗi thời gian được chuyển đổi thành Ngày Julian.
Thêm công cụ sửa đổi
Chúng tôi có thể sửa đổi kết quả trước đó bằng cách sử dụng một công cụ sửa đổi. Đây là một ví dụ.
SELECT julianday('now', '+3 hours');
Kết quả:
2458968.65149612
Nhiều công cụ sửa đổi
Như đã đề cập, bạn có thể thêm một hoặc nhiều bổ ngữ. Dưới đây là ví dụ về việc thêm một công cụ sửa đổi khác vào ví dụ trước.
SELECT julianday('now', '+3 hours', 'localtime');
Kết quả:
2458969.0685371
julianday () so với strftime ()
julianday()
hàm trả về chính xác cùng một kết quả mà strftime('%J', ...)
lợi nhuận. julianday()
chỉ là một cách thuận tiện hơn để thực hiện.
SELECT
julianday('now'),
strftime('%J', 'now');
Kết quả:
julianday('now') strftime('%J', 'now') ---------------- --------------------- 2458968.52807836 2458968.528078356
Phạm vi ngày
Như với tất cả các hàm ngày và giờ của SQLite, julianday()
chỉ hoạt động cho các ngày từ 0000-01-01 00:00:00 đến 9999-12-31 23:59:59 (Số ngày Julian từ 1721059,5 đến 5373484,5).
Đối với những ngày nằm ngoài phạm vi đó, kết quả không được xác định.