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

ORA-01821:lỗi không nhận dạng được định dạng ngày cho ngày ISO 8601 với giờ địa phương

Bạn có hai vấn đề:TO_DATE không nhận ra bất kỳ thành phần múi giờ hoặc giây phân số nào, bạn sẽ phải chuyển đổi nó thành dấu thời gian với múi giờ và .s không phải là cách bạn thể hiện phân số giây, bạn cần .ff . Các mô hình định dạng hợp lệ được hiển thị trong tài liệu .

Kết hợp chúng lại với nhau bạn có thể làm:

SELECT TO_TIMESTAMP_TZ ('2015-08-26T05:46:30.488+0100',
 'YYYY-MM-DD"T"hh24:mi:ss.ffTZHTZM')
FROM DUAL;

TO_TIMESTAMP_TZ('2015-08-26T05:46:30.488+0100','YYYY-MM-DD"T"HH24:MI:SS.FFTZHTZ
-------------------------------------------------------------------------------
26-AUG-15 05.46.30.488000000 +01:00                                             

Nếu bạn thực sự muốn nó là một ngày, bạn sẽ cần quyết định phải làm gì với thông tin múi giờ - giả sử đó là giờ địa phương (về cơ bản là bỏ qua nó) hoặc chuyển đổi sang UTC hoặc một số múi giờ khác. Tuy nhiên, bạn có thể thực sự muốn giữ nó như một dấu thời gian với múi giờ.



  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 thế nào để gửi tin nhắn SMS qua oracle 11g? khách hàng là con cóc và ở Ấn Độ, tôi phải gửi sms

  2. Đảo ngược chuỗi Word bằng Word sử dụng SQL

  3. Thu thập hàng loạt PL / SQL với mệnh đề LIMIT trong Cơ sở dữ liệu Oracle

  4. Loại bỏ lỗi SQL * PLUS trong tập lệnh hàng loạt

  5. Thủ tục chỉ xóa nếu cơ sở dữ liệu cao hơn sau đó cập nhật