|
SQL - SYSTIMESTAMP (Obtener milisegundos de la fecha) |
|
|
¿Cómo obtendrías los milisegundos de la fecha del sistema? ... ¿estás pensando en usar SYSDATE? Desde Oracle 9i existe una nueva función, SYSTIMESTAMP que muestra la fecha del sistema con una precisión de fracciones de segundo, y también almacena los datos de zona horaria (Time Zone). Esto NO se puede hacer con SYSDATE, pues sólo almacena la fecha del sistema con una precisión de segundos:
SQL> select to_char(systimestamp,'dd-mm-yyyy hh24:mi:ss.FF') from dual;
TO_CHAR(SYSTIMESTAMP,'DD-MM-Y
-----------------------------
05-10-2010 12:33:08.423492
Como podemos observar, por defecto, se muestra la fecha con una precisión de hasta 6 cifras para las fracciones de segundo. Si queremos obtener sólo los milisegundos (sólo 3 cifras de precisión):
SQL> select to_char(systimestamp,'dd-mm-yyyy hh24:mi:ss.FF3') from dual
TO_CHAR(SYSTIMESTAMP,'DD-MM-Y
-----------------------------
05-10-2010 12:33:13.794
La función SYSTIMESTAMP se apoya sobre el tipo TIMESTAMP (nuevo desde Oracle 9i), mientras que SYSDATE lo hace sobre DATE. Es por tanto, el tipo TIMESTAMP el que proporciona la precisión extra de las fracciones de segundo (hasta 9 cifras, por defecto 6).
Si queremos obtener sólo los milisegundos de la fecha del sistema:
SQL> select to_char(systimestamp,'ff3') from dual;
TO_CHAR(S
---------
110
Para mostrar los segundos (con precisión al milisegundo) transcurridos desde que empezó el día:
SQL> select to_char(systimestamp,'sssss.ff3') from dual
TO_CHAR(SYSTIME
---------------
35345.565
Referencias:
|
|
Última modificación ( 06.10.2010 )
|