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.
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
SCCSiglo.
Uno mayor que los dos primeros dígitos de un año de cuatro dígitos. 
Para ROUND_TIMESTAMP, se redondea al año e 50th e del siglo.
Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1901-01-01-00.00.00.000000Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1801-01-01-00.00.00.000000SYYYY
AAAA
AÑO
AÑO
AAAA
AÑO
AAño.
Para ROUND_TIMESTAMP, se redondea del 1 de julio al 1 de enero del año siguiente ( 1st ).
Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1898-01-01-00.00.00.000000Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1897-01-01-00.00.00.000000IYYY
IYY
IY
IAño ISO.
Para 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.
Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1898-01-03-00.00.00.000000Valor de entrada:
1897-12-04-12.22.22.000000
Resultado
1897-01-04-00.00.00.000000Q Trimestre.
Para ROUND_TIMESTAMP, se redondea al alza el día e 16th e del segundo mes del trimestre.
Valor de entrada:
1999-06-04-12.12.30.000000
Resultado
1999-07-01-00.00.00.000000Valor de entrada:
1999-06-04-12.12.30.000000
Resultado
1999-04-01-00.00.00.000000MES
LUNES
LUNES
Mes.
Para ROUND_TIMESTAMP, se redondea al día e 16th e del mes.
Valor de entrada:
1999-06-18-12.12.30.000000
Resultado
1999-07-01-00.00.00.000000Valor de entrada:
1999-06-18-12.12.30.000000
Resultado
1999-06-01-00.00.00.000000WW Mismo día de la semana que el primer día del año.
Para 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.
Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-05-06-00.00.00.000000Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-04-29-00.00.00.000000IW Mismo día de la semana que el primer día del año ISO.
Para 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.
Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-05-08-00.00.00.000000Valor de entrada:
2000-05-05-12.12.30.000000
Resultado
2000-05-01-00.00.00.000000W Mismo día de la semana que el primer día del año.
Para 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.
Valor de entrada:
2000-06-21-12.12.30.000000
Resultado
2000-06-22-00.00.00.000000Valor de entrada:
2000-06-21-12.12.30.000000
Resultado
2000-06-15-00.00.00.000000DDD
DD
JDía.
Para ROUND_TIMESTAMP, redondea hacia arriba en la hora e 12th e del día.
Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-18-00.00.00.000000Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-17-00.00.00.000000DÍA
DÍA
DPrimer día de la semana.
Para 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.
Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-21-00.00.00.000000Valor de entrada:
2000-05-17-12.59.59.000000
Resultado
2000-05-14-00.00.00.000000HH
HH12
HH24Hora.
Para ROUND_TIMESTAMP, se redondea a los 30 minutos.
Valor de entrada:
2000-05-17-23.59.59.000000
Resultado
2000-05-18-00.00.00.000000Valor de entrada:
2000-05-17-23.59.59.000000
Resultado
2000-05-17-23.00.00.000000MI Minuto.
Para ROUND_TIMESTAMP, se redondea a los 30 segundos.
Valor de entrada:
2000-05-17-23.58.45.000000
Resultado
2000-05-17-23.59.00.000000Valor de entrada:
2000-05-17-23.58.45.000000
Resultado
2000-05-17-23.58.00.000000SS Segundo.
Para ROUND_TIMESTAMP, se redondea al alza a 500000 microsegundos.
Valor de entrada:
2000-05-17-23.58.45.500000
Resultado
2000-05-17-23.58.46.000000Valor de entrada:
2000-05-17-23.58.45.500000
Resultado
2000-05-17-23.58.45.000000
se expresa de la siguiente manera:
Si 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.
- De lo contrario, la expresión se convierte en TIMESTAMP(6) SIN ZONA HORARIA.
El resultado de la función es una marca de tiempo con zona horaria.
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.
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 ».