Tóm tắt :trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách làm việc với các giá trị ngày và giờ trong SQLite và sử dụng các hàm ngày và giờ tích hợp để xử lý các giá trị ngày và giờ.
SQLite không hỗ trợ lớp lưu trữ ngày và / hoặc thời gian tích hợp sẵn. Thay vào đó, nó sử dụng một số hàm ngày và giờ tích hợp để sử dụng các lớp lưu trữ khác như TEXT
, REAL
hoặc INTEGER
để lưu trữ các giá trị ngày và giờ.
Sử dụng TEXT
lớp lưu trữ để lưu trữ ngày và giờ SQLite
Nếu bạn sử dụng TEXT
lớp lưu trữ để lưu trữ giá trị ngày và giờ, bạn cần sử dụng định dạng chuỗi ISO8601 như sau:
YYYY-MM-DD HH:MM:SS.SSS
Code language: SQL (Structured Query Language) (sql)
Ví dụ:2016-01-01 10:20:05.123
Đầu tiên, tạo một bảng mới có tên datetime_text
để trình diễn.
CREATE TABLE datetime_text(
d1 text,
d2 text
);
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Bảng chứa hai cột d1
và d2
với TEXT
kiểu dữ liệu.
Để chèn các giá trị ngày và giờ vào datetime_text
, bạn sử dụng DATETIME
chức năng.
Ví dụ:để nhận giá trị ngày và giờ UTC hiện tại, bạn chuyển chuỗi ký tự hiện tại vào hàm như sau:
SELECT datetime('now');
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Để lấy giờ địa phương, bạn chuyển một đối số bổ sung localtime
.
SELECT datetime('now','localtime');
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Thứ hai, chèn các giá trị ngày và giờ vào datetime_text
bảng như sau:
INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Thứ ba, truy vấn dữ liệu từ datetime_text
bảng.
SELECT
d1,
typeof(d1),
d2,
typeof(d2)
FROM
datetime_text;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Sử dụng REAL
lớp lưu trữ để lưu trữ các giá trị ngày và giờ của SQLite
Bạn có thể sử dụng REAL
lớp lưu trữ để lưu trữ các giá trị ngày và / hoặc thời gian dưới dạng số ngày Julian, là 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. dựa trên lịch Gregory sơ khai.
Hãy xem một ví dụ về việc sử dụng lớp lưu trữ REAL để lưu trữ các giá trị ngày và giờ.
Đầu tiên, tạo một bảng mới có tên datetime_real
.
CREATE TABLE datetime_real(
d1 real
);
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Thứ hai, chèn giá trị ngày và giờ “hiện tại” vào datetime_real
bảng.
INSERT INTO datetime_real (d1)
VALUES(julianday('now'));
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Chúng tôi đã sử dụng julianday()
chức năng chuyển đổi ngày và giờ hiện tại thành Ngày Julian.
Thứ ba, truy vấn dữ liệu từ datetime_real
bảng.
SELECT d1 FROM datetime_real;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Đầu ra không phải con người có thể đọc được.
May mắn thay, bạn có thể sử dụng date()
tích hợp sẵn và time()
các chức năng để định dạng giá trị ngày và giờ như sau:
SELECT
date(d1),
time(d1)
FROM
datetime_real;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Sử dụng INTEGER
để lưu trữ các giá trị ngày và giờ của SQLite
Bên cạnh đó TEXT
và REAL
các lớp lưu trữ, bạn có thể sử dụng INTEGER
lớp lưu trữ để lưu trữ các giá trị ngày và giờ.
Chúng tôi thường sử dụng INTEGER
để lưu trữ thời gian UNIX là số giây kể từ 1970-01-01 00:00:00 UTC
. Xem ví dụ sau:
Đầu tiên, hãy tạo một bảng có một cột có kiểu dữ liệu là INTEGER
để lưu trữ các giá trị ngày và giờ.
CREATE TABLE datetime_int (d1 int);
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Thứ hai, chèn giá trị ngày và giờ hiện tại vào datetime_int
bảng.
INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Thứ ba, truy vấn dữ liệu từ datetime_int
bảng.
SELECT d1 FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Đó là một số nguyên.
Để định dạng kết quả, bạn có thể sử dụng datetime()
tích hợp sẵn chức năng như sau:
SELECT datetime(d1,'unixepoch')
FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Sử dụng SQLite, bạn có thể thoải mái chọn bất kỳ kiểu dữ liệu nào để lưu trữ các giá trị ngày và giờ cũng như sử dụng chức năng ngày và giờ tích hợp để chuyển đổi giữa các định dạng.
Để biết thông tin chi tiết về các hàm ngày và giờ của SQLite, hãy xem các hàm ngày và giờ được tích hợp sẵn.
Trong hướng dẫn này, bạn đã học cách sử dụng TEXT
, REAL
và INTEGER
các lớp lưu trữ để lưu trữ các giá trị ngày và giờ. Ngoài ra, bạn đã học cách sử dụng các hàm ngày và giờ tích hợp để chuyển đổi các giá trị ngày và giờ được lưu trữ thành các định dạng có thể đọc được.