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

Truy vấn SQL của Oracle cho định dạng Ngày

to_date() trả về một ngày lúc 00:00:00, vì vậy bạn cần "xóa" số phút của ngày bạn đang so sánh với:

select * 
from table
where trunc(es_date) = TO_DATE('27-APR-12','dd-MON-yy')

Bạn có thể muốn tạo chỉ mục trên trunc(es_date) nếu đó là điều bạn đang làm một cách thường xuyên.

Chữ '27-APR-12' có thể bị lỗi rất dễ dàng nếu định dạng ngày mặc định được thay đổi thành bất kỳ thứ gì khác. Vì vậy, hãy đảm bảo rằng bạn luôn sử dụng to_date() với mặt nạ định dạng thích hợp (hoặc chữ ANSI:date '2012-04-27' )

Mặc dù bạn đã làm đúng khi sử dụng to_date() và không dựa vào chuyển đổi kiểu dữ liệu hoàn toàn, việc sử dụng to_date () của bạn vẫn có một lỗi nhỏ do định dạng 'dd-MON-yy' .

Với một cài đặt ngôn ngữ khác, điều này có thể dễ dàng bị lỗi, ví dụ:TO_DATE('27-MAY-12','dd-MON-yy') khi NLS_LANG được đặt thành tiếng Đức. Tránh bất kỳ thứ gì có định dạng có thể khác với ngôn ngữ khác. Sử dụng năm bốn chữ số và chỉ các số, ví dụ:'dd-mm-yyyy' hoặc 'yyyy-mm-dd'



  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 để kiểm tra xem một cột có tồn tại hay không trước khi thêm nó vào bảng hiện có trong PL / SQL?

  2. KHÔNG VÀO lựa chọn với giá trị NULL

  3. Các thực thể cơ sở dữ liệu tùy chọn

  4. Lấy mẫu động giết chết tôi trong 12c

  5. Truy xuất dữ liệu trong một phạm vi ngày trong Oracle