registros - Cómo convertir una fecha a segundos en Oracle
pivot oracle columns to rows (7)
Sobre el tema general de truncar fechas de Oracle, aquí está el enlace de documentación para los modelos de formato que se pueden usar en las funciones date trunc () AND round ()
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions242.htm#sthref2718
"Segundos" no aparece porque la granularidad del tipo de datos DATE es segundos.
Esta página menciona cómo trunc una marca de tiempo a minutos / horas / etc. en Oracle
¿Cómo controlarías una marca de tiempo a segundos de la misma manera?
Utilicé una función como esta:
FUNCTION trunc_sec(p_ts IN timestamp)
IS
p_res timestamp;
BEGIN
RETURN TO_TIMESTAMP(TO_CHAR(p_ts, ''YYYYMMDDHH24MI''), ''YYYYMMDDHH24MI'');
END trunc_sec;
Lo siento, pero todos mis predecesores parecen estar equivocados:
select cast (systimestamp as date) de dual no se trunca sino que se redondea al siguiente segundo.
Yo uso una función:
CREATE OR REPLACE FUNCTION TRUNC_TS(TS IN TIMESTAMP) RETURN DATE AS
BEGIN
RETURN TS;
END;
SELECT systimestamp, trunc_ts(systimestamp) date_trunc,
CAST(systimestamp AS DATE) date_cast FROM dual
SYSTIMESTAMP DATE_TRUNC DATE_CAST
21.01.10 15:03:34,567350 +01:00 21.01.2010 15:03:34 21.01.2010 15:03:35
Como la precisión de DATE
es la segunda (y no hay fracciones de segundos), no hay necesidad de TRUNC
en absoluto.
El tipo de datos TIMESTAMP
permite fracciones de segundos. Si lo convierte a DATE
, se eliminarán los segundos fraccionarios, por ej.
select cast(systimestamp as date)
from dual;
Algo del orden de:
select to_char(current_timestamp, ''SS'') from dual;
Para truncar una timestamp
de timestamp
en segundos, puede convertirla a una fecha:
CAST(timestamp AS DATE)
Para realizar los TRUNC
en el artículo:
TRUNC(CAST(timestamp AS DATE), ''YEAR'')
trunc funciona solo a min, lanzado hasta la fecha to_char(START_TIME,''YYYYMMDDHH24MISS'')
o simplemente select to_char(current_timestamp, ''YYYYMMDDHH24MISS'') from dual;
https://www.techonthenet.com/oracle/functions/trunc_date.php