tutorial smart remix programador online español curso oracle timestamp db2

smart - Identificador no válido en Oracle al seleccionar la marca de tiempo actual



smart contracts ethereum (2)

tratar

select to_date(''08/07/2015 '' || to_char(sysdate,''hh24:mi:ss''),''dd/mm/yyyy hh24:mi:ss'') from dual

La siguiente consulta funcionaba en DB2. Sin embargo, cuando intento esto en Oracle, devuelve un error: "identificador inválido". Aquí está mi declaración:

SELECT TO_DATE(20150709||'' ''||TIME(CURRENT_TIMESTAMP), ''YYYYMMDD HH24MISS'') FROM DUAL

¿Cómo puedo hacer que funcione en Oracle?


TIME no es una función incorporada válida en Oracle. Necesita usar TO_CHAR para extraer la porción de tiempo como una cadena o usar algún otro mecanismo para agregar en el componente de tiempo.

SELECT TO_DATE( 20150709||'' ''||TO_CHAR(CURRENT_TIMESTAMP, ''HH24MISS'') , ''YYYYMMDD HH24MISS'') FROM DUAL;

Aquí hay un método alternativo que usa la aritmética de fechas:

SELECT TO_DATE(20150709, ''YYYYMMDD'') + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP)) FROM DUAL;

Al restar el CURRENT_TIMESTAMP truncado de una marca de tiempo no truncada, obtiene el tipo de datos INTERVAL que puede agregarse o restarse de fechas y marcas de tiempo.