SQLite - Ngày & giờ
SQLite hỗ trợ năm hàm ngày và giờ như sau:
Sr.No. | Chức năng | Thí dụ |
---|---|---|
1 | ngày (chuỗi thời gian, bổ ngữ ...) | Điều này trả về ngày ở định dạng sau: YYYY-MM-DD |
2 | thời gian (chuỗi thời gian, bổ ngữ ...) | Điều này trả về thời gian là HH: MM: SS |
3 | datetime (thời gian, công cụ sửa đổi ...) | Điều này trả về YYYY-MM-DD HH: MM: SS |
4 | julianday (định thời gian, bổ ngữ ...) | Điều này 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 |
5 | strftime (chuỗi thời gian, bổ ngữ ...) | Điều này trả về ngày được định dạng theo chuỗi định dạng được chỉ định làm đối số đầu tiên được định dạng theo các định dạng được giải thích bên dưới. |
Tất cả năm hàm ngày và giờ ở trên lấy chuỗi thời gian làm đối số. Chuỗi thời gian được theo sau bởi không hoặc nhiều bổ ngữ. Hàm strftime () cũng nhận một chuỗi định dạng làm đối số đầu tiên của nó. Phần sau sẽ cung cấp cho bạn chi tiết về các loại chuỗi thời gian và công cụ sửa đổi.
Chuỗi thời gian
Chuỗi thời gian có thể ở bất kỳ định dạng nào sau đây:
Sr.No. | Chuỗi thời gian | Thí dụ |
---|---|---|
1 | YYYY-MM-DD | 2010-12-30 |
2 | YYYY-MM-DD HH: MM | 2010-12-30 12:10 |
3 | YYYY-MM-DD HH: MM: SS.SSS | 2010-12-30 12: 10: 04.100 |
4 | MM-DD-YYYY HH: MM | 30-12-2010 12:10 |
5 | HH: MM | 12:10 |
6 | YYYY-MM-DDTHH: MM | 2010-12-30 12:10 |
7 | HH: MM: SS | 12:10:01 |
số 8 | YYYYMMDD HHMMSS | 20101230 121001 |
9 | hiện nay | 2013-05-07 |
Bạn có thể sử dụng chữ "T" như một ký tự chữ phân tách ngày và giờ.
Bổ ngữ
Chuỗi thời gian có thể được theo sau bởi không hoặc nhiều bổ ngữ sẽ thay đổi ngày và / hoặc thời gian được trả về bởi bất kỳ hàm nào trong số năm hàm trên. Các bổ ngữ được áp dụng từ trái sang phải.
Các modifers sau có sẵn trong SQLite:
- NNN ngày
- NNN giờ
- NNN phút
- NNN.NNNN giây
- NNN tháng
- NNN năm
- đầu tháng
- đầu năm
- bắt đầu một ngày
- ngày trong tuần N
- unixepoch
- localtime
- utc
Bộ định dạng
SQLite cung cấp một chức năng rất tiện dụng strftime()để định dạng bất kỳ ngày và giờ nào. Bạn có thể sử dụng các thay thế sau để định dạng ngày và giờ của mình.
Thay thế | Sự miêu tả |
---|---|
% d | Ngày trong tháng, 01-31 |
% f | Phân số giây, SS.SSS |
% H | Giờ, 00-23 |
% j | Ngày trong năm, 001-366 |
% J | Số ngày Julian, DDDD.DDDD |
% m | Tháng, 00-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 (0 là Chủ nhật) |
% W | Tuần trong năm, 01-53 |
% Y | Năm, YYYY |
%% | % Biểu tượng |
Ví dụ
Bây giờ hãy thử các ví dụ khác nhau bằng cách sử dụng lời nhắc SQLite. Lệnh sau tính toán ngày hiện tại.
sqlite> SELECT date('now');
2013-05-07
Lệnh sau tính ngày cuối cùng của tháng hiện tại.
sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31
Lệnh sau tính toán ngày và giờ cho một dấu thời gian UNIX nhất định 1092941466.
sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06
Lệnh sau tính toán ngày và giờ cho một dấu thời gian UNIX nhất định 1092941466 và bù cho múi giờ địa phương của bạn.
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06
Lệnh sau tính toán dấu thời gian UNIX hiện tại.
sqlite> SELECT strftime('%s','now');
1393348134
Lệnh sau tính số ngày kể từ ngày ký Tuyên ngôn Độc lập của Hoa Kỳ.
sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023
Lệnh sau tính số giây kể từ một thời điểm cụ thể trong năm 2004.
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
Lệnh sau tính toán ngày của Thứ Ba đầu tiên trong tháng Mười cho năm hiện tại.
sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01
Lệnh sau tính toán thời gian kể từ kỷ nguyên UNIX tính bằng giây (như strftime ('% s', 'now') ngoại trừ bao gồm phần phân số).
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598
Để chuyển đổi giữa các giá trị UTC và giờ địa phương khi định dạng ngày, hãy sử dụng công cụ sửa đổi utc hoặc localtime như sau:
sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00