DATE
là một kiểu tích hợp trong Oracle, được biểu diễn theo một cách cố định và bạn không có quyền kiểm soát nó.
Vì vậy:
Tôi muốn nó chèn [...] là 08/01/2011 12:00:00 AM
Trên đây là vô nghĩa. Bạn không chèn một chuỗi, bạn chèn một ngày.
Định dạng chỉ hữu ích khi bạn muốn:
- để chuyển đổi một chuỗi thành một đại diện nội bộ của ngày với
TO_DATE
(mặt nạ định dạng:cách phân tích cú pháp chuỗi); - để chuyển đổi một đại diện nội bộ của ngày thành một chuỗi với
TO_CHAR
(mặt nạ định dạng:cách hiển thị ngày tháng).
Vì vậy, về cơ bản, trong ví dụ của bạn, bạn lấy DATE, bạn chuyển đổi nó thành STRING với một số định dạng và chuyển đổi nó trở lại DATE với cùng một định dạng. Đây là điều không cần thiết.
Bây giờ, những gì ứng dụng khách của bạn hiển thị:điều này là do Ứng dụng khách Oracle của bạn sẽ không hiển thị trực tiếp các trường DATE và lớp NLS sẽ chuyển đổi bất kỳ trường DATE nào được chọn. Vì vậy, nó phụ thuộc vào ngôn ngữ của bạn theo mặc định.
Những gì bạn muốn là SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual;
sẽ thực hiện chuyển đổi một cách rõ ràng và trả về một chuỗi.
Và khi bạn muốn chèn ngày vào cơ sở dữ liệu, bạn có thể sử dụng TO_DATE
hoặc các ký tự ngày tháng.