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

DateTime on Where Mệnh đề Oracle

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') chuyển đổi một chuỗi (đối số đầu tiên) ở định dạng nhất định (đối số thứ hai) thành một ngày.

(create_date / ( 60 * 60 * 24 )) create_date chứa giây, biểu thức này chuyển chúng thành số ngày (1 phút =60 giây, 1 giờ =60 phút, 1 ngày =24 giờ => 60 * 60 * 24 =số giây trong một ngày). Khi bạn thêm một số vào ngày, Oracle nghĩ rằng số này chứa ngày, đó là lý do tại sao bạn cần một cuộc trò chuyện như vậy.

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') + (create_date / ( 60 * 60 * 24 )) cung cấp cho bạn một ngày được lưu trữ trong create_date nhưng ở định dạng "truyền thống"

Có vẻ như bạn cần so sánh thời gian unix với ngày tháng. Sẽ tốt hơn nếu sử dụng điều kiện này:

Select
....
From
...
Where create_date = trunc( (TO_DATE('06/30/14 21:41:11', 'MM/DD/YY HH24:MI:SS') 
                          - TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
                           ) * 24 * 60 * 60
                         );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chuyển varchar với các dấu nháy đơn đến Stored Proc trong Oracle

  2. tạo bảng với sequence.nextval trong oracle

  3. Lược đồ khung thực thể độc lập Mã Di chuyển đầu tiên

  4. Sự chênh lệch ngày tháng trong Oracle để lấy số năm

  5. Làm cách nào để tìm các giá trị liên tiếp trùng lặp trong bảng này?