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

Java Date.toString в TO_DATE на Oracle

DATE на Oracle типът данни няма часова зона - имате нужда от TIMESTAMP WITH TIMEZONE тип данни:

SELECT TO_TIMESTAMP_TZ(
         'Thu Nov 24 15:20:52 CET 2016',
         'DY MON DD HH24:MI:SS TZR YYYY'
       )
FROM DUAL

Ако искате да конвертирате в DATE (и регионът на часовата зона винаги е CET ), тогава можете да използвате:

SELECT TO_DATE(
         'Thu Nov 24 15:20:52 CET 2016',
         'DY MON DD HH24:MI:SS "CET" YYYY'
       )
FROM DUAL

Ако искате да е DATE тип данни и за да спазвате часовата зона в оригиналния низ, тогава ще трябва (1) да го конвертирате в TIMESTAMP WITH TIMEZONE тип данни; (2) конвертирайте тази стойност в стандартизирана часова зона (UTC често се използва за това); след това (3) преобразувайте това в дата:

SELECT CAST(
         TO_TIMESTAMP_TZ(
           'Thu Nov 24 15:20:52 CET 2016',
           'DY MON DD HH24:MI:SS TZR YYYY'
         )
         AT TIME ZONE 'UTC'
         AS DATE
       )
FROM   DUAL;

Което ще изведе датата 2016-11-24 14:20:52 (UTC представянето на въведената дата).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задействане въз основа на sysdate

  2. Продължавам да получавам грешки в моята процедура, които помагат за добавянето на нов курс и съм поставил изисквания в описанието

  3. Oracle 10:Използване на HEXTORAW за попълване на blob данни

  4. Как да добавите вертикални граници към вашата изходна мрежа SQL*Plus / SQLcl

  5. Създаване на таблица от изглед - Oracle SQL SQL грешка:ORA-01723:не са разрешени колони с нулева дължина