sql >> Databáze >  >> RDS >> Oracle

Java Date.toString v TO_DATE společnosti Oracle

Oracle DATE datový typ nemá časové pásmo – potřebujete TIMESTAMP WITH TIMEZONE datový typ:

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

Pokud chcete převést na DATE (a oblast časového pásma je vždy CET ), pak můžete použít:

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

Pokud to chcete jako DATE datový typ a pro respektování časového pásma v původním řetězci jej budete muset (1) převést na TIMESTAMP WITH TIMEZONE datový typ; (2) převést tuto hodnotu na standardizované časové pásmo (často se k tomu používá UTC); pak (3) to převeďte na datum:

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;

Které vypíše datum 2016-11-24 14:20:52 (reprezentace UTC data vstupu).



  1. StrongLoop:EmbedsMany vs hasMany a patří

  2. Odstraňování problémů se serverem SQL Server Always On Availability Group

  3. JSON_VALID() – Test na platný JSON v MySQL

  4. 12c Změny DBA_USERS