Vấn đề:
Bạn muốn định dạng cột hoặc giá trị ngày giờ trong SQLite.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên ticket
với dữ liệu trong các cột passenger_ID
, train_number
và sale_datetime
.
senger_ID | train_number | sale_datetime |
---|---|---|
245NX | 4505 | 2019-10-17 12:56:30 |
127RG | 3403 | 2019-10-17 11:45:23 |
567FH | 4505 | 2019-10-18 12:40:32 |
230AP | 6700 | 2019-10-18 13:20:20 |
118BB | 3403 | 2019-10-18 13:13:13 |
Đối với mỗi lần bán vé, hãy lấy ID hành khách, số chuyến tàu và ngày giờ bán. Chúng tôi muốn định dạng ngày giảm giá để hiển thị ngày, tháng và năm được phân tách bằng dấu gạch chéo (/), với dấu phẩy giữa năm và giờ. Chúng tôi chỉ muốn giờ và phút bán hàng.
Đây là truy vấn bạn sẽ viết:
Giải pháp:
SELECT passenger_ID, train_number, STRFTIME('%d/%m/%Y, %H:%M', sale_datetime) AS sale_formatted_datetime FROM ticket;
Đây là kết quả của truy vấn:
senger_ID | train_number | sale_formatted_datetime |
---|---|---|
245NX | 4505 | 17/10/2019, 12:56 |
127RG | 3403 | 17/10/2019, 11:45 |
567FH | 4505 | 18/10/2019, 12:40 |
230AP | 6700 | 18/10/2019, 13:20 |
118BB | 3403 | 18/10/2019, 13:13 |
Thảo luận:
Sử dụng STRFTIME()
hàm định dạng dữ liệu date \ time \ datetime trong SQLite. Hàm này có hai đối số. Đối số đầu tiên là một chuỗi định dạng có chứa mẫu phần ngày / giờ. Trong ví dụ của chúng tôi, chúng tôi sử dụng chuỗi định dạng ‘% d /% m /% Y,% H:% M '. Trong chuỗi này:
- % d là một ngày có hai chữ số.
- % m là tháng có hai chữ số.
- % Y là năm có bốn chữ số.
- % H là một giờ có hai chữ số.
- % M là một phút có hai chữ số.
Bạn có thể tìm thêm các từ chỉ định ngày và giờ trong tài liệu SQLite.
Đối số thứ hai là giá trị time / date / datetime để định dạng. Đây có thể là một biểu thức trả về giá trị thời gian / ngày tháng hoặc tên của cột thời gian / ngày tháng / ngày giờ. (Trong ví dụ của chúng tôi, đó là cột sale_datetime
.)
STRFTIME()
trả về ngày và giờ đã định dạng. Trong ví dụ của chúng tôi, ngày và giờ được định dạng không chứa giây và các phần của ngày được phân tách bằng dấu gạch chéo (/) thay vì dấu gạch ngang (-).