Oracle
 sql >> база данни >  >> RDS >> Oracle

Функция TO_DATE в ORACLE

Датите нямат формат - те са представени от 7- или 8-байта .

SELECT DUMP( SYSDATE ) FROM DUAL;

Може да изведе:

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

Този формат е много полезен за компютри за сравняване на дати, но не толкова полезен за хората; така че, когато SQL клиентът (SQL/plus, SQL Developers, TOAD и т.н.) показва дата, той не показва байтовете, а я показва като низ.

Той прави това чрез скрито извикване на TO_CHAR() (или някакъв друг вътрешен метод за низиране на дати) и използва маска за формат по подразбиране, за да извърши това преобразуване.

SQL/Plus и SQL Developer ще използват параметъра на сесията на потребителя NLS_DATE_FORMAT за да извършите това преобразуване - вижте този отговор относно това.

Така че втората ви заявка имплицитно се преобразува, за да направи нещо подобно на това (но почти сигурно по-ефективно):

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. Какво може да причини промяна на Oracle ROWID?

  2. Незадължителни обекти на база данни

  3. Намиране на последния индекс на низ в Oracle

  4. Tomcat jdbc набор от връзки - връщане назад на изоставена транзакция

  5. Сравнение между редове в една и съща таблица в Oracle