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

Tạo ngày từ năm, tháng và ngày

Đối với ví dụ của bạn, bạn có thể sử dụng case :

select (case when my_year is not null and my_year <> 0 and
                  my_year between -4713 and 9999
             then TO_DATE(my_year || '-01-01', 'YYYY-MM-DD')
        end)

Thật không may, Oracle không có phương pháp thực hiện chuyển đổi, nếu có thể và trả về NULL. SQL Server gần đây đã giới thiệu try_convert() cho mục đích này.

Một tùy chọn là viết hàm của riêng bạn với một trình xử lý ngoại lệ cho việc chuyển đổi không thành công. Trình xử lý ngoại lệ sẽ chỉ trả về NULL cho một định dạng xấu.



  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 để kết nối với phiên bản Oracle docker

  2. Hạn chế xóa truy vấn với chế độ ngủ đông

  3. biểu thức oracle sai kiểu trong khi kiểm tra biến

  4. Thứ tự SQL theo các phần tử từ mệnh đề IN

  5. không thể nhận tham số từ thủ tục oracle được thực thi bởi mybatis