2012-04-25 39 views

Respuesta

21
SELECT VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDD') 
FROM SYSIBM.SYSDUMMY1 

debe trabajar tanto en la unidad central y Linux/Unix/Windows DB2. Info Center entry for VARCHAR_FORMAT().

+0

que funciona. gracias ... ¿pueden decirme también cómo puedo registrar días a partir de la fecha anterior .................................. ...................... como CURDATE() - (3 días) – zod

+0

Parece que ya lo tienes. :) 'CURRENT TIMESTAMP - 3 DAY' – bhamby

2

Esto no es sencillo, pero

SELECT CHAR(CURRENT DATE, ISO) FROM SYSIBM.SYSDUMMY1 

devuelve la fecha actual en el formato aaaa-mm-dd. Tendría que subsergir y concatenar el resultado para obtener aaaammdd.

SELECT SUBSTR(CHAR(CURRENT DATE, ISO), 1, 4) || 
    SUBSTR(CHAR(CURRENT DATE, ISO), 6, 2) || 
    SUBSTR(CHAR(CURRENT DATE, ISO), 9, 2) 
FROM SYSIBM.SYSDUMMY1 
+0

gracias ... pero ¿es esta la única manera de hacerlo? entonces, ¿cuál es el uso de los formatos ... DATE_K AAAAMMDD? – zod

+0

No pude obtener la función ALTDATE para que funcione en mi DB2. Lo que publique en mi respuesta funciona. –

1

La fecha actual es en formato yyyy-mm-dd. Puede convertirlo en yyyymmdd formato utilizando substring función:

select substr(current date,1,4)||substr(current date,6,2)||substr(currentdate,9,2) 
3

Una de las soluciones más SUSTITUIR (CHAR (fecha actual, ISO), '-', '')

-1
select to_char(current date, 'yyyymmdd') from sysibm.sysdummy1 

resultado: 20160510

+0

La consulta no funciona. Devuelve: SQL0440N No se ha encontrado ninguna rutina autorizada con el nombre "TO_CHAR" de tipo "FUNCTION" que tenga argumentos compatibles. SQLSTATE = 42884 – Ian