SYSDATE vs. SYSTIMESTAMP
Zur Ermittlung der Systemzeit gibt es in Oracle PL_SQL folgende Möglichkeiten
a) sysdate -> liefert die Systemzeit sekundengenau
b) systimestamp -> liefert die Systemzeit mit sekundenBRUCHTEILEN (unter Unix mehr Nachkommastellen als unter Windows)
Beispiele
select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss') A from dual;
select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss.ffffff') A from dual; => Fehler, siehe unten
select to_char(systimestamp,'dd.mm.yyyy hh24:mm:ss.ffffff') B from dual;
A
-------------------
21.12.2012 12:12:13
1 row selected.
select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss.ffffff') A from dual
*
Error at line 1
ORA-01821: date format not recognized
B
-----------------------------------------------
21.12.2012 12:12:14.975620975620975620
1 row selected.
=> sehr praktisch für Logging-Tabellen ;-)
Hinweis:
Zum Berechnen der Differenz zwischen zwei timestamp-Variablen wird eine Variable vom Typ benötigt - siehe Bsp.:
... dann klappt es auch mit der Berechnung...
Quelle für die Berechnung: http://jasonvogel.blogspot.de/2006/11/example-using-systimestamp-milliseconds.html
oder hier: http://psoug.org/reference/timestamp.html
a) sysdate -> liefert die Systemzeit sekundengenau
b) systimestamp -> liefert die Systemzeit mit sekundenBRUCHTEILEN (unter Unix mehr Nachkommastellen als unter Windows)
Beispiele
select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss') A from dual;
select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss.ffffff') A from dual; => Fehler, siehe unten
select to_char(systimestamp,'dd.mm.yyyy hh24:mm:ss.ffffff') B from dual;
A
-------------------
21.12.2012 12:12:13
1 row selected.
select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss.ffffff') A from dual
*
Error at line 1
ORA-01821: date format not recognized
B
-----------------------------------------------
21.12.2012 12:12:14.975620975620975620
1 row selected.
=> sehr praktisch für Logging-Tabellen ;-)
Hinweis:
Zum Berechnen der Differenz zwischen zwei timestamp-Variablen wird eine Variable vom Typ benötigt - siehe Bsp.:
ltimestamp_start timestamp; ltimestamp_stop timestamp; linterval_diff interval day to second;
... dann klappt es auch mit der Berechnung...
Quelle für die Berechnung: http://jasonvogel.blogspot.de/2006/11/example-using-systimestamp-milliseconds.html
oder hier: http://psoug.org/reference/timestamp.html
Kommentare
Kommentar veröffentlichen