TRUNC_TIMESTAMP, función escalar

La función TRUNC_TIMESTAMP devuelve un valor TIMESTAMP SIN ZONA HORARIA que es la expresión, truncada a la unidad especificada por la cadena de formato. Si no se especifica formato-cadena, la expresión se trunca al día más cercano, como si se hubiera especificado «DD» para formato-cadena.

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualTRUNC_TIMESTAMP(expresión «DD»,format-string )

El esquema es SYSIBM.

expresión
Expresión que devuelve un valor de cualquiera de los siguientes tipos de datos integrados: una marca de tiempo, una cadena de caracteres o una cadena gráfica. Si expression es un carácter o una cadena gráfica, no debe ser un CLOB o DBCLOB, y su valor debe ser una representación de cadena válida de una marca de tiempo con una longitud real que no sea superior a 255 bytes. Se ignora una zona horaria en una representación de cadena de una marca de tiempo. Para los formatos válidos de representaciones de cadenas de fechas y marcas de tiempo, consulte Representaciones de cadenas de valores de fecha y hora.
format-string
Expresión que devuelve un tipo de datos de cadena de caracteres o cadena gráfica incorporado, con una longitud que no supera los 255 bytes. format-string contiene una plantilla de cómo debe truncarse la marca de tiempo representada por expression. Por ejemplo, si formato-cadena es 'DD', la marca de tiempo que está representada por expresión se trunca al día más cercano. la cadena de formato debe ser una plantilla válida para una marca de tiempo y no debe incluir espacios en blanco al principio o al final. Los valores permitidos para la cadena de formato se enumeran en la siguiente tabla.
Tabla 1. Modelos de formato ROUND_TIMESTAMP y TRUNC_TIMESTAMP
Modelo de formato Descripción del redondeo o truncado para el modelo de formato Ejemplo de ROUND_TIMESTAMP Ejemplo de TRUNC_TIMESTAMP
CC
SCC
Siglo.

Inicio del cambioUno mayor que los dos primeros dígitos de un año de cuatro dígitos. fin del cambio

Inicio del cambioPara ROUND_TIMESTAMP, se redondea al año e 50th e del siglo.fin del cambio

Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1901-01-01-00.00.00.000000
Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1801-01-01-00.00.00.000000
SYYYY
AAAA
AÑO
AÑO
AAAA
AÑO
A
Año.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea del 1 de julio al 1 de enero del año siguiente ( 1st ).fin del cambio

Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1898-01-01-00.00.00.000000
Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1897-01-01-00.00.00.000000
IYYY
IYY
IY
I
Año ISO.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea el 1 de julio al primer día del siguiente año ISO. El primer día del año ISO es el lunes de la primera semana ISO.fin del cambio

Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1898-01-03-00.00.00.000000
Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1897-01-04-00.00.00.000000
Q Trimestre.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea al alza el día e 16th e del segundo mes del trimestre.fin del cambio

Valor de entrada:
1999-06-04-12.12.30.000000
Resultado
1999-07-01-00.00.00.000000
Valor de entrada:
1999-06-04-12.12.30.000000
Resultado
1999-04-01-00.00.00.000000
MES
LUNES
LUNES
Mes.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea al día e 16th e del mes.fin del cambio

Valor de entrada:
1999-06-18-12.12.30.000000
Resultado
1999-07-01-00.00.00.000000
Valor de entrada:
1999-06-18-12.12.30.000000
Resultado
1999-06-01-00.00.00.000000
WW Mismo día de la semana que el primer día del año.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea hacia arriba en la hora e 12th e del día e 4th e de la semana, con respecto al primer día del año.fin del cambio

Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-05-06-00.00.00.000000
Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-04-29-00.00.00.000000
IW Mismo día de la semana que el primer día del año ISO.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea hacia arriba en la hora e 12th e del día e 4th e de la semana, con respecto al primer día del año ISO.fin del cambio

Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-05-08-00.00.00.000000
Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-05-01-00.00.00.000000
W Mismo día de la semana que el primer día del año.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea hacia arriba en la hora e 12th e del día e 4th e de la semana, con respecto al primer día del mes.fin del cambio

Valor de entrada:
2000-06-21-12.12.30.000000
Resultado
2000-06-22-00.00.00.000000
Valor de entrada:
2000-06-21-12.12.30.000000
Resultado
2000-06-15-00.00.00.000000
DDD
DD
J
Día.

Inicio del cambioPara ROUND_TIMESTAMP, redondea hacia arriba en la hora e 12th e del día.fin del cambio

Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-18-00.00.00.000000
Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-17-00.00.00.000000
DÍA
DÍA
D
Primer día de la semana.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea hacia arriba con respecto a la hora e 12th e del día e 4th e de la semana. El primer día de la semana es siempre el domingo.fin del cambio

Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-21-00.00.00.000000
Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-14-00.00.00.000000
HH
HH12
HH24
Hora.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea a los 30 minutos.fin del cambio

Valor de entrada:
2000-05-17-23.59.59.000000
Resultado
2000-05-18-00.00.00.000000
Valor de entrada:
2000-05-17-23.59.59.000000
Resultado
2000-05-17-23.00.00.000000
MI Minuto.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea a los 30 segundos.fin del cambio

Valor de entrada:
2000-05-17-23.58.45.000000
Resultado
2000-05-17-23.59.00.000000
Valor de entrada:
2000-05-17-23.58.45.000000
Resultado
2000-05-17-23.58.00.000000
SS Segundo.

Inicio del cambioPara ROUND_TIMESTAMP, se redondea al alza a 500000 microsegundos.fin del cambio

Valor de entrada:
2000-05-17-23.58.45.500000
Resultado
2000-05-17-23.58.46.000000
Valor de entrada:
2000-05-17-23.58.45.500000
Resultado
2000-05-17-23.58.45.000000

Inicio del cambiose expresa de la siguiente manera:fin del cambio

  • Inicio del cambioSi expresión es una marca de tiempo con valor de zona horaria, expresión se convierte en una marca de tiempo sin valor de zona horaria, con la misma precisión que expresión.fin del cambio
  • De lo contrario, la expresión se convierte en TIMESTAMP(6) SIN ZONA HORARIA.

Inicio del cambioEl resultado de la función es una marca de tiempo con zona horaria.fin del cambio

El resultado puede ser nulo; si cualquier argumento es nulo, el resultado es el valor nulo.

El resultado CCSID es el CCSID apropiado del esquema de codificación del argumento y el subtipo de resultado es el subtipo apropiado del CCSID.

Ejemplo : Establezca la variable de host TRNK_TMSTMP con la fecha especificada redondeada al valor de año más cercano.
   SET :TRNK_TMSTMP = TRUNC_TIMESTAMP('2008-03-14-17.30.00', 'YEAR'); 
La variable de host TRNK_TMSTMP se establece con el valor « 2008-01-01-00.00.00.000000 ».