2013-07-29 9 views

risposta

46

CURRENT_DATE e CURRENT_TIMESTAMP restituiscono la data e l'ora correnti nel fuso orario della sessione.

SYSDATE e SYSTIMESTAMP restituiscono la data e l'ora del sistema, ovvero del sistema su cui si trova il database.

Se la sessione del client non si trova nello stesso fuso orario del server su cui si trova il database (o dice che non è comunque, tramite le impostazioni NLS), il mix delle funzioni SYS* e CURRENT_* restituirà valori diversi. Sono tutti corretti, rappresentano solo cose diverse. Sembra che il tuo server sia (o lo sia) in un fuso orario di +4: 00, mentre la tua sessione client è in un fuso orario di +4: 30.

Si potrebbero anche notare piccole differenze nel tempo se gli orologi non sono sincronizzati, il che non sembra essere un problema qui.

2

SYSDATE restituisce la data di sistema, del sistema su cui risiede il database

CURRENT_TIMESTAMP restituisce la data e l'ora correnti nel fuso orario della sessione, in un valore di tipo di dati TIMESTAMP WITH TIME ZONE

eseguire questo comman

ALTER SESSION SET TIME_ZONE = '+3:0'; 

e vi fornirà lo stesso risultato.

+0

+4: 30 significa ora legale in Iran. C'è l'Iran e ora è estate! Perché shold ho cambiato il mio fuso orario ?! –

+0

perché SYSDATE restituisce la data di sistema del sistema su cui si trova il database. Il tipo di ritorno è TIMESTAMP WITH TIME ZONE e CURRENT_TIMESTAMP restituisce la data e l'ora correnti nel fuso orario della sessione, in un valore di tipo datetime TIMESTAMP WITH TIME ZONE – Harshit

10

SYSDATE, SYSTIMESTAMP restituisce il database data e timestamp, mentre current_date, current_timestamp restituisce la data e timestamp del luogo da dove si lavora.

Ad es. lavorando dall'India, accedo a un database situato a Parigi. alle 04:00 IST:

select sysdate,systimestamp from dual;

Questo mi restituisce la data e l'ora di Parigi:

RISULTATO

12-MAY-14 12-MAY-14 12.30.03.283502000 PM +02:00 

select current_date,current_timestamp from dual;

Questo mi restituisce la data e Tempo dell'India:

RISULTATO

12-MAY-14 12-MAY-14 04.00.03.283520000 PM ASIA/CALCUTTA 

Si prega di notare la differenza di 3:30 di tempo.

0
  • SYSDATE fornisce la data e l'ora di un server.
  • CURRENT_DATE fornisce data e ora del cliente. (Vale a dire., Il sistema)
  • CURRENT_TIMESTAMP fornisce dati e timestamp di una clinet.
-2
  1. SYSDATE, systimestamp ritorno datetime del server su cui è installato database. SYSDATE - restituisce solo la data, ad esempio "aaaa-mm-gg". systimestamp restituisce data con ora e zona, ovvero "aaaa-mm-gg hh: mm: ss: ms fuso orario"
  2. restituisce datetime all'esecuzione dell'istruzione dell'ora, ovvero "aaaa-mm-gg hh: mm: ss "
  3. CURRENT_DATE -" aaaa-mm-gg ", CURRENT_TIME -" hh: mm: ss ", CURRENT_TIMESTAMP -" aaaa-mm-gg hh: mm: ss fuso orario ". Questi sono correlati al tempo di inserimento del record.
0

Nota: SYSDATE - restituisce solo la data, ad esempio "aaaa-mm-gg" non è corretta. SYSDATE restituisce la data di sistema del server database che include ore, minuti e secondi. Ad esempio:

SELECT SYSDATE FROM DUAL; restituirà un output simile al seguente: 12/15/2017 12:42:39 PM

+1

Si prega di formattare il codice. – RAS