TIMESTAMP Função escalar

A função registro de data e hora retorna um registro de data/hora a partir de um valor ou um par de valores.

Read syntax diagramSkip visual syntax diagramTIMESTAMP(expression1 ,expression2)

O esquema é SYSIBM.

Apenas bancos de dados Unicode suportam um argumento que é uma representação de cadeia gráfica de uma data, um tempo ou um timestamp. Em um banco de dados Unicode, se um argumento fornecido for uma string gráfica, ele será primeiramente convertido para uma cadeia de caracteres antes da execução da função.

expression1 e expression2

As regras para os argumentos dependem de se expression2 é especificado e o tipo de dados de expression2.

  • Se apenas um argumento for especificado ele deve ser uma expressão que devolve um valor de um dos seguintes tipos de dados embutidos: um DATE, um TIMESTAMP ou uma string de caracteres que não seja um CLOB. Se expression1 for uma sequência de caracteres, ele deve ser um dos seguintes:
    • Uma representação de cadeia de caracteres válida de uma data ou um timestamp. Para os formatos válidos de representações de string de valores data ou timestamp, consulte Representações String de valores datetime em Valores Datetime.
    • Uma sequência de caracteres com um comprimento real de 13 que é assumido como um resultado da função GENERATE_UNIQUE.
    • Uma string de comprimento 14 que é uma sequência de dígitos que representa uma data e hora válida no formato yyyyxxddhhmmss, onde yyyy é o ano, xx é o mês, dd é o dia, hh é o hora, mm é o minuto, e ss são os segundos.
  • Se expression1 e expression2 forem especificados:
    • Se o tipo de dados de expression2 não for um inteiro:
      • expression1 deve ser um DATE ou uma representação de string válida de uma data e o expression2 deve ser um TIME ou uma representação de string válida de um tempo.
    • Se o tipo de dado de expression2 for um inteiro:
      • expression1 deve ser um DATE, TIMESTAMP ou uma representação string válida de um timestamp ou data. expression2 deve ser um número inteiro constante na faixa de 0 12 representando a precisão timestamp.

O resultado da função é um TIMESTAMP.

A precisão timestamp e outras regras dependem de se o segundo argumento é especificado:
  • Se ambos os argumentos forem especificados e o segundo argumento não for um inteiro:
    • O resultado é um TIMESTAMP (6) com a data especificada pelo primeiro argumento e o tempo especificado pelo segundo argumento. Os segundos fracionados parte do timestamp é zero.
  • Se ambos os argumentos forem especificados e o segundo argumento for um inteiro:
    • O resultado é um TIMESTAMP com a precisão especificada no segundo argumento.
  • Se apenas um argumento for especificado e ele for um TIMESTAMP (p):
    • O resultado é que TIMESTAMP (p).
  • Se apenas um argumento for especificado e ele for um DATE:
    • O resultado é aquela data com hora assumida do elenco da meia-noite para a TIMESTAMP (0).
  • Se apenas um argumento for especificado e ele for uma string:
    • O resultado é o valor TIMESTAMP (6) representado por essa string estendida conforme descrito anteriormente com qualquer informação de tempo ausente. Se o argumento for uma sequência de comprimento 14, o TIMESTAMP tem uma parte de segundos fracionados de zero.

Se os argumentos incluem apenas informações de data, as informações de tempo no valor do resultado são todos os zeros. Se qualquer um argumento pode ser nulo, o resultado pode ser nulo; se qualquer um argumento for nulo, o resultado será o valor nulo.

Exemplos

  • Exemplo 1: Suponha que a coluna START_DATE (cujo tipo de dados é DATE) tenha um valor equivalente a 1988-12-25 e a coluna START_TIME (cujo tipo de dados é TIME) tenha um valor equivalente a 17.12.30.
       TIMESTAMP(START_DATE, START_TIME)

    Retorna o valor '1988-12-25-17.12.30.000000'.

  • Exemplo 2: Converter uma string timestamp com 7 dígitos de segundos fracionados a um valor TIMESTAMP (9).
    TIMESTAMP('2007-09-24-15.53.37.2162474',9)
    Retorna o valor '2007-09-24-15.53.37.216247400'.