Función escalar TIMESTAMP

La función TIMESTAMP devuelve una indicación de fecha y hora a partir de un valor o par de valores.

Read syntax diagramSkip visual syntax diagramTIMESTAMP(expression1 ,expression2)

El esquema es SYSIBM.

Sólo las bases de datos Unicode dan soporte a un argumento que es una representación de serie gráfica de una fecha, una hora o una indicación de fecha y hora. En una base de datos Unicode, si un argumento proporcionado es una serie gráfica, se convertirá a una serie de caracteres antes de que se ejecute la función.

expression1 y expression2

Las reglas para los argumentos dependen de si se ha especificado expression2 y del tipo de datos de expression2.

  • Si sólo se especifica un único argumento, éste debe ser una expresión que devuelva un valor de uno de los tipos de datos incorporados siguientes: un valor DATE, TIMESTAMP o una serie de caracteres que no sea un CLOB. Si expression1 es una serie de caracteres, debe ser uno de los siguientes:
    • Una representación de serie de caracteres de fecha o indicación de fecha y hora válida. Para ver los formatos válidos de representaciones de serie de valores de fecha o indicación de fecha y hora, consulte Representaciones de serie de valores de fecha y hora en Valores de fecha y hora.
    • Una serie de caracteres con una longitud real de 13 que se adopte como resultado de la función GENERATE_UNIQUE.
    • Una serie de longitud 14 que es una serie de dígitos que representa una fecha y hora válidas con el formato aaaaxxddhhmmss, donde aaaa es el año, xx es el mes, dd es el día, hh es la hora, mm es el minuto y ss son los segundos.
  • Si se especifican expression1 y expression2 :
    • Si el tipo de datos de expression2 no es un entero:
      • expression1 debe ser un valor DATE o una representación de serie válida de una fecha y expression2 debe ser un valor TIME o una representación de serie válida de una hora.
    • Si el tipo de datos de expression2 es un entero:
      • expression1 debe ser un valor DATE, TIMESTAMP o una representación de serie válida de una indicación de fecha y hora o fecha. expression2 debe ser una constante entera en el rango de 0 a 12 que representa la precisión de la indicación de fecha y hora.

El resultado de la función es un valor TIMESTAMP.

La precisión de indicación de fecha y hora y otras normas dependen de si se especifica el segundo argumento:
  • Si se especifican los dos argumentos y el segundo argumento no es un entero:
    • El resultado es un valor TIMESTAMP(6), con la fecha que especifica el primer argumento y la hora que especifica el segundo argumento. La parte correspondiente a los segundos fraccionarios de la indicación de fecha y hora es cero.
  • Si se especifican los dos argumentos y el segundo argumento es un entero:
    • El resultado es un valor TIMESTAMP, con la precisión que se especifica en el segundo argumento.
  • Si sólo se especifica un único argumento y éste es un valor TIMESTAMP(p):
    • El resultado es ese valor TIMESTAMP(p).
  • Si sólo se especifica un único argumento y éste es un valor DATE:
    • El resultado es esa fecha, dándose por supuesta la conversión de la hora de la medianoche a TIMESTAMP(0).
  • Si sólo se especifica un argumento y es una serie:
    • El resultado es el valor TIMESTAMP(6) representado mediante esa serie ampliada tal como se describía anteriormente, con la información de hora que podría faltar. Si el argumento es una serie de longitud 14, el valor TIMESTAMP tiene una parte de cero segundos fraccionarios.

Si los argumentos sólo incluyen información de fecha, la información de hora del valor del resultado es todo ceros. Si el argumento puede ser nulo, el resultado puede ser nulo; si cualquier argumento es nulo, el resultado es el valor nulo.

ejemplos

  • Ejemplo 1: Supongamos que la columna START_DATE (cuyo tipo de datos es DATE) tiene un valor equivalente a 1988-12-25 y que la columna START_TIME (cuyo tipo de datos es TIME) tiene un valor equivalente a 17.12.30.
       TIMESTAMP(START_DATE, START_TIME)

    Devuelve el valor '1988-12-25-17.12.30.000000'.

  • Ejemplo 2: Convierta una serie de indicación de fecha y hora con 7 dígitos de segundos fraccionarios en un valor TIMESTAMP(9).
    TIMESTAMP('2007-09-24-15.53.37.2162474',9)
    Devuelve el valor '2007-09-24-15.53.37.216247400'.