Vấn đề:
Bạn muốn chuyển đổi một chuỗi thành một ngày trong tập hợp kết quả của mình.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên accounts_creation
, với trường có tên company_id
của kiểu dữ liệu NUMBER và hai trường NVARCHAR2 có tên company_name
và registration_date
như hình bên dưới.
company_id | company_name | register_date |
---|---|---|
1 | Mười môn phối hợp | ngày 5 tháng 1 năm 1978 |
2 | Vestel | ngày 21 tháng 9 năm 1991 |
3 | Nhà nguyện Trắng | 18 tháng 10, 2017 |
4 | Silvercup | 4 tháng 12 năm 2021 |
5 | JohnnyBros | 28 tháng 8 năm 1984 |
Chúng tôi muốn chuyển đổi cột chuỗi registration_date
vào cột ngày tháng.
Giải pháp:
Chúng tôi sẽ sử dụng TO_DATE()
hàm số. Đây là truy vấn:
SELECT company_id, company_name, TO_DATE(registration_date,'DD Mon YEAR') AS registration_date FROM accounts_creation;
Đây là kết quả của truy vấn:
company_id | company_name | register_date |
---|---|---|
1 | Mười môn phối hợp | 05-JAN-78 |
2 | Vestel | 21-SEP-91 |
3 | Nhà nguyện Trắng | 18-OCT-17 |
4 | Silvercup | 4-DEC-21 |
5 | JohnnyBros | 28-AUG-84 |
Thảo luận:
TO_DATE(string, format)
trong Oracle chuyển đổi một giá trị chuỗi thành một ngày tháng. Hàm nhận hai đối số:chuỗi cần chuyển đổi và định dạng ngày tháng. Trong đặc tả định dạng, DD
biểu thị ngày trong tháng (1-31), MON biểu thị tên viết tắt của tháng và YEAR
biểu thị năm có 4 chữ số. Bạn có thể đọc thêm về các định dạng có sẵn trong tài liệu Oracle SQL tại đây.