DAY función escalar
La función DAY devuelve la parte correspondiente al día de un valor.
El esquema es SYSIBM.
El argumento debe ser una expresión que devuelva uno de los siguientes tipos de datos integrados: una fecha, una marca de tiempo, una cadena de caracteres, una cadena gráfica o cualquier tipo de datos numéricos.
- 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 fecha o marca de tiempo con una longitud real que no sea mayor de 255 bytes. 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.
- Si expression es un número, debe ser una duración de fecha o una duración de marca de tiempo. Para los formatos válidos de duraciones de fecha y hora, consulte Operandos de fecha y hora.
Si expression es una marca de tiempo con un valor de zona horaria, o una representación de cadena válida de una marca de tiempo con una zona horaria, el resultado se determina a partir de la representación UTC del valor de fecha y hora.
El resultado de la función es un entero grande.
El resultado puede ser nulo; si el argumento es nulo, el resultado es el valor nulo.
Las demás reglas para la función dependen del tipo de datos del argumento:
- Si el argumento es una fecha, una marca de tiempo o una representación de cadena de cualquiera de ellos, el resultado es la parte del día del valor, que es un número entero en el rango 1-31.
- Si el argumento es una duración de fecha o una duración de marca de tiempo, el resultado es la parte del día del valor, que es un número entero entre -99 y 99. El resultado que no es cero tiene el mismo signo que el argumento.
Si el argumento contiene una zona horaria, el resultado es la parte del día del valor expresado en UTC.
Ejemplos para DÍA
- Ejemplo 1
- Establezca la variable de host INTEGER DAYVAR en el día del mes en que se contrató al empleado 140 en la tabla de muestra DSN8C10.EMP.
EXEC SQL SELECT DAY(HIREDATE) INTO :DAYVAR FROM DSN8C10.EMP WHERE EMPNO = '000140'; - Ejemplo 2
- Supongamos que DATE1 y DATE2 son columnas DATE en la misma tabla. Supongamos también que, para una fila determinada de esta tabla, DATE1 y DATE2 representan las fechas 15 de enero de 2000 y 31 de diciembre de 1999, respectivamente. Entonces, para la fila dada, la siguiente invocación de función devuelve 15.
DAY(DATE1 - DATE2) - Ejemplo 3
- Las siguientes invocaciones de la función DAY devuelven todas el mismo resultado, que es 2. Cuando el argumento de entrada contiene una zona horaria, el resultado se determina a partir de la representación UTC del valor de entrada. Las representaciones de cadena de las marcas de tiempo con una zona horaria en la instrucción SELECT de ejemplo tienen todas la misma representación UTC: 2003-01-02-20.00.00. La porción diurna de la representación UTC es 2.
SELECT DAY('2003-01-02-20.00.00'), DAY('2003-01-02-12.00.00-08:00'), DAY('2003-01-03-05.00.00+09:00') FROM SYSIBM.SYSDUMMY1;
