SQLite hỗ trợ năm hàm để làm việc với ngày và giờ. Đây là:
-
date()
-
time()
-
datetime()
-
julianday()
-
strftime()
Tất cả các hàm này chấp nhận một chuỗi thời gian làm đối số. Chúng cũng chấp nhận các đối số khác để sửa đổi / định dạng đầu ra.
strftime()
chức năng là chức năng linh hoạt nhất trong năm chức năng. Trên thực tế, chức năng này có thể làm mọi thứ mà bốn chức năng còn lại có thể làm được.
Nói cách khác, bạn có thể sử dụng strftime()
cho tất cả các yêu cầu định dạng ngày và giờ của bạn. Bốn chức năng khác chỉ có sẵn để thuận tiện.
Cú pháp
Cú pháp của mỗi hàm như sau:
date(timestring, modifier, modifier, ...)
time(timestring, modifier, modifier, ...)
datetime(timestring, modifier, modifier, ...)
julianday(timestring, modifier, modifier, ...)
strftime(format, timestring, modifier, modifier, ...)
Trong bốn hàm đầu tiên, đối số đầu tiên là một chuỗi thời gian và bất kỳ đối số tiếp theo nào là bổ ngữ.
Trong strftime()
hàm đối số đầu tiên là chuỗi định dạng, tiếp theo là chuỗi thời gian và bất kỳ công cụ sửa đổi nào.
Tất cả các chuỗi thời gian hợp lệ và công cụ sửa đổi được liệt kê ở gần cuối bài viết này.
Nhưng trước tiên, hãy xem qua một số ví dụ nhanh về từng chức năng này.
Hàm date ()
Bạn có thể sử dụng date()
hàm với một đối số hoặc với nhiều đối số.
Dưới đây là một ví dụ chỉ với một đối số:
SELECT date('now');
Kết quả:
2020-04-23
Dưới đây là một ví dụ sử dụng công cụ sửa đổi:
SELECT date('now', 'localtime');
Kết quả:
2020-04-24
Trong trường hợp này, tôi đã sử dụng localtime
bổ nghĩa. Công cụ sửa đổi này giả định rằng chuỗi thời gian là Giờ Phối hợp Toàn cầu (UTC) và điều chỉnh chuỗi thời gian để nó hiển thị giờ địa phương.
Hàm time ()
time()
chức năng tương tự như date()
, ngoại trừ việc nó xuất ra thời gian thay vì ngày tháng.
Đây là một ví dụ:
SELECT time('now');
Kết quả:
00:02:05
Và đây là với localtime
bổ ngữ:
SELECT time('now', 'localtime');
Kết quả:
10:02:09
Hàm datetime ()
SQLite datetime()
hàm kết hợp hai hàm trước đó, theo nghĩa là nó xuất ra cả ngày và giờ.
Đây là một ví dụ:
SELECT datetime('now');
Kết quả:
"2020-04-24 00:04:13"
Và đây là với localtime
bổ ngữ:
SELECT datetime('now', 'localtime');
Kết quả:
"2020-04-24 10:04:46"
Hàm julianday ()
julianday()
hàm trả về số ngày liên tục kể từ đầu Thời kỳ Julian, là Thứ Hai, ngày 1 tháng 1 năm 4713 trước Công nguyên, lịch Julian tiền sơ khai (ngày 24 tháng 11 năm 4714 trước Công nguyên, theo lịch Gregory sơ khai).
Đây là giao diện của nó khi sử dụng now
theo thời gian:
SELECT julianday('now');
Kết quả:
2458963.50964815
Và ở đây nó đang sử dụng localtime
bổ ngữ:
SELECT julianday('now', 'localtime');
Kết quả:
2458963.92637685
Hàm strftime ()
Như đã đề cập, strftime()
hàm có thể được sử dụng để xuất ra các giá trị ngày và giờ ở bất kỳ định dạng nào có sẵn trong các hàm trước đó.
Chức năng này cho phép bạn rất cụ thể về cách các giá trị ngày / giờ của bạn được định dạng. Nó cho phép bạn cung cấp định dạng chính xác mà bạn muốn nó được trình bày.
Cú pháp của hàm này như sau:
strftime(format, timestring, modifier, modifier, ...)
Lưu ý rằng đối số đầu tiên là format
. Đây là nơi bạn cung cấp định dạng mà bạn muốn chuỗi thời gian được xuất ra.
Chuỗi định dạng cho strftime()
có thể bao gồm bất kỳ sự thay thế nào sau đây:
% d | Ngày trong tháng:00 |
% f | Giây phân số:SS.SSS |
% H | Giờ:00-24 |
% j | Ngày trong năm:001-366 |
% J | Số ngày Julian |
% m | Tháng:01-12 |
% M | Phút:00-59 |
% s | Giây kể từ 1970-01-01 |
% S | Giây:00-59 |
% w | Ngày trong tuần 0-6 với Chủ nhật ==0 |
% W | Tuần trong năm:00-53 |
% Y | Năm:0000-9999 |
%% | % |
Đây là một ví dụ:
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now');
Kết quả:
"2020-04-24 00:43:51"
Trong trường hợp này, chúng tôi nhận được kết quả tương tự như khi sử dụng datetime()
chức năng.
Đây là với localtime
bổ ngữ:
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime');
Kết quả:
"2020-04-24 10:45:27"
Một lần nữa, kết quả tương tự như với datetime()
. Sự khác biệt là, strftime()
cho phép chúng tôi chỉ định rõ ràng định dạng của đầu ra.
Ví dụ:
SELECT strftime('%d/%m/%Y %H:%M:%S', 'now', 'localtime');
SELECT strftime('%m/%d/%Y (%H:%M:%S)', 'now', 'localtime');
SELECT strftime('%H:%M:%S on %d/%m/%Y', 'now', 'localtime');
Kết quả:
"24/04/2020 10:49:41" "04/24/2020 (10:52:24)" "10:51:13 on 24/04/2020"
Định dạng chuỗi thời gian hợp lệ
Đối số chuỗi thời gian trong tất cả các hàm ngày / giờ có thể được cung cấp ở bất kỳ định dạng nào sau đây:
- YYYY-MM-DD
- YYYY-MM-DD HH:MM
- YYYY-MM-DD HH:MM:SS
- YYYY-MM-DD HH:MM:SS.SSS
- YYYY-MM-DDTHH:MM
- YYYY-MM-DDTHH:MM:SS
- YYYY-MM-DDTHH:MM:SS.SSS
- HH:MM
- HH:MM:SS
- HH:MM:SS.SSS
- bây giờ
- DDDDDDDDDD
Công cụ sửa đổi hợp lệ
Bạn có thể sử dụng bất kỳ công cụ sửa đổi nào sau đây với các chức năng ngày / giờ:
- NNN ngày
- NNN giờ
- NNN phút
- NNN.NNNN giây
- NNN tháng
- NNN năm
- đầu tháng
- đầu năm
- đầu ngày
- ngày trong tuần N
- unixepoch
- giờ địa phương
- utc
N
đề cập đến một số được thêm vào ngày, dựa trên đơn vị được chỉ định.
Ví dụ:
SELECT
date('now'),
date('now', '3 days');
Kết quả:
date('now') date('now', '3 days') ----------- --------------------- 2020-04-24 2020-04-27
Đây là một trong những sử dụng start of month
làm bổ ngữ:
SELECT
date('now'),
date('now', 'start of month');
Kết quả:
date('now') date('now', 'start of month') ----------- ----------------------------- 2020-04-24 2020-04-01