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

Hàm TO_DATE trong ORACLE

Ngày không có định dạng - chúng được biểu thị bằng 7- hoặc 8 byte .

SELECT DUMP( SYSDATE ) FROM DUAL;

Sản lượng có thể:

Typ=13 Len=8: 220,7,11,26,16,41,9,0

Định dạng này rất hữu ích cho máy tính để so sánh ngày tháng nhưng không quá hữu ích đối với con người; vì vậy, khi máy khách SQL (SQL / plus, SQL Developers, TOAD, v.v.) hiển thị ngày, nó không hiển thị byte mà hiển thị dưới dạng chuỗi.

Nó thực hiện điều này bằng cách thực hiện một cuộc gọi ngầm tới TO_CHAR() (hoặc một số phương pháp nội bộ khác để xâu chuỗi ngày tháng) và sử dụng mặt nạ định dạng mặc định để thực hiện chuyển đổi này.

SQL / Plus và SQL Developer sẽ sử dụng tham số phiên của người dùng NLS_DATE_FORMAT để thực hiện chuyển đổi này - hãy xem câu trả lời này liên quan đến điều này.

Vì vậy, truy vấn thứ hai của bạn đang được chuyển đổi một cách ngầm định để làm điều gì đó tiếp cận điều này (nhưng, gần như chắc chắn, hiệu quả hơn):

SELECT TO_CHAR(
         TO_DATE('01-01-2015','DD-MM-YYYY'),
         ( SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT' )
       )
FROM   DUAL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bộ sưu tập PL / SQL:Bảng lồng nhau trong cơ sở dữ liệu Oracle

  2. Cách Chèn Dấu thời gian trong Oracle ở Định dạng Cụ thể

  3. Giá trị thấp nhất nhưng không phải NULL trong Oracle SQL

  4. Làm cách nào tôi có thể thực hiện tổng hợp này?

  5. Sự khác biệt giữa hai danh sách phân cách không có thứ tự (Oracle)