Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách lấy ngày từ chuỗi trong Oracle

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_nameregistration_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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào tôi có thể lấy số lượng bản ghi bị ảnh hưởng bởi một quy trình được lưu trữ?

  2. Sql:chênh lệch giữa hai ngày

  3. Hàm ROUND (ngày) trong Oracle

  4. Cơ sở dữ liệu lỗi của Oracle ở đâu?

  5. Kết nối Oracle 21c với SQL Server