SQLite có date()
hàm cho phép bạn trả về giá trị ngày tháng dựa trên chuỗi thời gian và bất kỳ công cụ sửa đổi nào.
Nó trả về ngày ở định dạng sau:YYYY-MM-DD
Để 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 của date()
hàm như sau:
date(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 date()
hàm đang được sử dụng với một đối số.
SELECT date('now');
Kết quả:
2020-04-27
now
chuỗi thời gian được chuyển đổi thành ngày và giờ hiện tại. Vì tôi đang sử dụng date()
hàm, chỉ ngày được trả về.
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 date('now', '+6 months');
Kết quả:
2020-10-27
Trong trường hợp này, tôi đã thêm sáu tháng vào ngày này.
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 date('now', '+6 months', 'localtime');
Kết quả:
2020-10-28
Trong trường hợp của tôi, localtime
sửa đổi dẫn đến một ngày được thêm vào ngày đó.
Lý do nó làm được điều này là vì localtime
công cụ sửa đổi giả định chuỗi thời gian được cung cấp là Giờ Phối hợp Toàn cầu (UTC). Sau đó, nó điều chỉnh chuỗi thời gian để nó hiển thị giờ địa phương.
Do đó, bạn có thể nhận được một kết quả khác, tùy thuộc vào giờ địa phương của bạn.
Chuỗi văn bản là chuỗi thời gian
Các ví dụ trên sử dụng now
dưới dạng chuỗi thời gian, nhưng bạn có thể cung cấp bất kỳ chuỗi thời gian hợp lệ nào.
Dưới đây là một số ví dụ khác.
SELECT date('2020-04-27 23:58:57');
Kết quả:
2020-04-27
Trong trường hợp này, nó chỉ đơn giản là loại bỏ phần thời gian khỏi ngày.
Đây là một lần nữa, nhưng với một số sửa đổi.
SELECT date('2020-04-27 23:58:57', 'start of year', '+6 months');
Kết quả:
2020-07-01
Trong trường hợp này, tôi muốn lấy ngày đó là 6 tháng kể từ đầu năm của ngày được cung cấp.
Dưới đây là một ví dụ sử dụng Ngày Julian làm chuỗi thời gian.
SELECT date('2458967.49737293');
Kết quả:
2020-04-27
date () so với strftime ()
date()
hàm trả về chính xác cùng một kết quả mà strftime('%Y-%m-%d', ...)
lợi nhuận. date()
chỉ là một cách thuận tiện hơn để thực hiện.
SELECT
date('now'),
strftime('%Y-%m-%d', 'now');
Kết quả:
date('now') strftime('%Y-%m-%d', 'now') ----------- --------------------------- 2020-04-28 2020-04-28
Phạm vi ngày
Như với tất cả các hàm ngày và giờ của SQLite, date()
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.