La plataforma mainframe de IBM se rejuvenece para soportar procesos basados en cloud computing y entornos móviles.
El objetivo de IBM no es otro que extender su uso en entornos basados en web, cloud computing y movilidad, cada vez más demandados. El problema es que en ellos se utilizan otros estándares que hasta hace poco no eran demasiado amigables con las instrucciones COBOL.
Con la nueva versión de IBM Enterprise COBOL para Z/OS se incorpora soporte para Java 7, UTF-8 y se mejoran los procesos de debugging. Como consecuencia de ello será más fácil para las empresas crear nuevas aplicaciones para las nuevas generaciones de dispositivos y modalidades en la nube.
Asimismo, los programadores también podrán hacer uso de recursos relacionados con XML gracias a la incorporación del parser z/OS XML, diseñado para llevar determinadas cargas de trabajo a otros motores adicionales más allá del mainframe, algo que permitirá reducir los costes operaciones, tal y como explica IBM.
En general, las aplicaciones que hagan uso del nuevo compilador mejorarán su rendimiento entre un 10 y un 20 por ciento.
Noticia en siliconweek
Mostrando entradas con la etiqueta Loboc. Mostrar todas las entradas
Mostrando entradas con la etiqueta Loboc. Mostrar todas las entradas
lunes, 20 de mayo de 2013
viernes, 17 de mayo de 2013
DB2 - Funciones escalares para fechas
Las funciones escalares se aplican a valores únicos de entrada, y devuelven un resultado de valor único.
Aquí veremos las funciones que nos proporciona DB2 para manejar fechas.
DATE: La función DATE devuelve una fecha que se deriva de un valor.
Ej: Obtenemos un date del string '2013-01-01'
SELECT DATE('2013-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
----------
2013-01-01
TO_DATE: La función TO_DATE devuelve un valor de timestamp que se basa en la interpretación del string de entrada utilizando el formato especificado.
Ej: Obtenemos un TIMESTAMP a partir de una fecha en formato de 8.
SELECT TO_DATE('20130101','YYYYMMDD')
FROM SYSIBM.SYSDUMMY1;
COL1
--------------------------
2013-01-01-00.00.00.000000
YEAR: La función YEAR devuelve la parte del año de un valor. El valor debe ser un string válido de una fecha o timestamp.
Ej: Obtenemos el año del string '2013-01-01'
SELECT YEAR('2013-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
2013
MONTH: La función MONTH devuelve la parte del mes de un valor. El valor debe ser un string válido de una fecha o timestamp.

Ej: Obtenemos el mes del string '2013-02-01'
SELECT MONTH('2013-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
2
ADD_MONTHS: La función ADD_MONTHS devuelve una fecha resultado de sumar un número de meses a la fecha pasada como argumento.

Ej: Sumamos 12 meses a la fecha '2013-02-01'
SELECT ADD_MONTHS('2013-02-01', 12)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
2014-02-01
MONTHS_BETWEEN: La función MONTHS_BETWEEN devuelve el número estimado de meses entre dos fechas pasadas como argumento.

Ej: Vemos los meses que hay entre '2013-02-01' y 2014-02-01'
SELECT MONTHS_BETWEEN('2013-02-01','2014-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
----------------------------------
-12.000000000000000
WEEK: La función WEEK devuelve un número entero comprendido entre 1 y 54 que representa la semana del año. Para el cómputo de una semana se comienza en Domingo.
Ej: Vemos que semana corresponde con la fecha '2012-01-01'
SELECT WEEK('2012-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
1
WEEK_ISO: La función WEEK_ISO devuelve un número entero comprendido entre 1 y 53 que representa la semana del año. Para el cómputo de una semana se comienza en Lunes e incluye los 7 días.
Ej: Vemos que semana corresponde con la fecha '2012-01-01'
SELECT WEEK_ISO('2012-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
52
DAY: La función DAY devuelve la parte del día de un valor. El valor debe ser un string válido de una fecha o timestamp, o bien un númerico que represente una fecha o timestamp.

Ej: Vemos que día corresponde con la fecha '2012-02-01'
SELECT DAY('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
1
DAYOFMONTH: La función DAYOFMONTH devuelve la parte del día de un valor. El valor debe ser un string válido de una fecha o timestamp.

Ej: Vemos que día del mes corresponde con la fecha '2012-02-01'
SELECT DAYOFMONTH('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
1
DAYOFWEEK: La función DAYOFWEEK devuelve un número entero del 1 al 7 que representa el día de la semana, tomando como día 1 el Domingo y 7 el Sábado.
Ej: Vemos que día de la semana corresponde con la fecha '2012-02-01'
SELECT DAYOFWEEK('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
4
DAYOFWEEK_ISO: La función DAYOFWEEK_ISO devuelve un número entero del 1 al 7 que representa el día de la semana, tomando como día 1 el Lunes y 7 el Domingo.

Ej: Vemos que día de la semana corresponde con la fecha '2012-02-01'
SELECT DAYOFWEEK_ISO('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
3
DAYOFYEAR: La función DAYOFYEAR devuelve un número entero del 1 al 366 que representa el día del año, tomando como día 1 el 1 de Enero.
Ej: Vemos que día del año corresponde con la fecha '2012-02-01'
SELECT DAYOFYEAR('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
32
DAYS: La función DAYS devuelve un número entero que representa la fecha. El valor 1 respresenta el 1 del 1 de 0001.

Ej: Vemos que entero corresponde con la fecha '2012-02-01'
SELECT DAYS('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
734534
JULIAN_DAY: La función JULIAN_DAY devuelve un número entero que representa el número de días desde el 1 de Enero de 4713 A.C.

Ej: Vemos que día juliano corresponde con la fecha '2012-02-01'
SELECT JULIAN_DAY('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
2455959
LAST_DAY: La función LAST_DAY devuelve una fecha que representa el último día del mes pasado por argumento.

Ej: Vemos que fecha corresponde con el último día de la fecha '2012-02-01'
SELECT LAST_DAY('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
----------
2012-02-29
NEXT_DAY: La función NEXT_DAY devuelve un timestamp que representa el siguiente día, al pasado por argumento, que se corresponde al día de la semana indicado por argumento.

Ej: Vemos que fecha se corresponde al siguiente Lunes a la fecha '2013-05-17'
SELECT NEXT_DAY('2013-05-17','MONDAY')
FROM SYSIBM.SYSDUMMY1;
COL1
--------------------------
2013-05-20-00.00.00.000000
Esperamos no dejarnos ninguna de las más habituales, de todas formas os recomendamos para profundizar en las funciones consultar el SQL Reference de IBM para DB2 10 z/OS.
Fuentes: SQL Reference (SC19-2983-03) IBM y Wikipedia
Aquí veremos las funciones que nos proporciona DB2 para manejar fechas.
DATE: La función DATE devuelve una fecha que se deriva de un valor.
Ej: Obtenemos un date del string '2013-01-01'
SELECT DATE('2013-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
----------
2013-01-01
TO_DATE: La función TO_DATE devuelve un valor de timestamp que se basa en la interpretación del string de entrada utilizando el formato especificado.
Ej: Obtenemos un TIMESTAMP a partir de una fecha en formato de 8.
SELECT TO_DATE('20130101','YYYYMMDD')
FROM SYSIBM.SYSDUMMY1;
COL1
--------------------------
2013-01-01-00.00.00.000000
YEAR: La función YEAR devuelve la parte del año de un valor. El valor debe ser un string válido de una fecha o timestamp.
Ej: Obtenemos el año del string '2013-01-01'
SELECT YEAR('2013-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
2013
MONTH: La función MONTH devuelve la parte del mes de un valor. El valor debe ser un string válido de una fecha o timestamp.
Ej: Obtenemos el mes del string '2013-02-01'
SELECT MONTH('2013-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
2
ADD_MONTHS: La función ADD_MONTHS devuelve una fecha resultado de sumar un número de meses a la fecha pasada como argumento.
Ej: Sumamos 12 meses a la fecha '2013-02-01'
SELECT ADD_MONTHS('2013-02-01', 12)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
2014-02-01
MONTHS_BETWEEN: La función MONTHS_BETWEEN devuelve el número estimado de meses entre dos fechas pasadas como argumento.
Ej: Vemos los meses que hay entre '2013-02-01' y 2014-02-01'
SELECT MONTHS_BETWEEN('2013-02-01','2014-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
----------------------------------
-12.000000000000000
WEEK: La función WEEK devuelve un número entero comprendido entre 1 y 54 que representa la semana del año. Para el cómputo de una semana se comienza en Domingo.
Ej: Vemos que semana corresponde con la fecha '2012-01-01'
SELECT WEEK('2012-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
1
WEEK_ISO: La función WEEK_ISO devuelve un número entero comprendido entre 1 y 53 que representa la semana del año. Para el cómputo de una semana se comienza en Lunes e incluye los 7 días.
Ej: Vemos que semana corresponde con la fecha '2012-01-01'
SELECT WEEK_ISO('2012-01-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
52
DAY: La función DAY devuelve la parte del día de un valor. El valor debe ser un string válido de una fecha o timestamp, o bien un númerico que represente una fecha o timestamp.
Ej: Vemos que día corresponde con la fecha '2012-02-01'
SELECT DAY('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
1
DAYOFMONTH: La función DAYOFMONTH devuelve la parte del día de un valor. El valor debe ser un string válido de una fecha o timestamp.
Ej: Vemos que día del mes corresponde con la fecha '2012-02-01'
SELECT DAYOFMONTH('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
1
DAYOFWEEK: La función DAYOFWEEK devuelve un número entero del 1 al 7 que representa el día de la semana, tomando como día 1 el Domingo y 7 el Sábado.
Ej: Vemos que día de la semana corresponde con la fecha '2012-02-01'
SELECT DAYOFWEEK('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
4
DAYOFWEEK_ISO: La función DAYOFWEEK_ISO devuelve un número entero del 1 al 7 que representa el día de la semana, tomando como día 1 el Lunes y 7 el Domingo.
Ej: Vemos que día de la semana corresponde con la fecha '2012-02-01'
SELECT DAYOFWEEK_ISO('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
3
DAYOFYEAR: La función DAYOFYEAR devuelve un número entero del 1 al 366 que representa el día del año, tomando como día 1 el 1 de Enero.
Ej: Vemos que día del año corresponde con la fecha '2012-02-01'
SELECT DAYOFYEAR('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
32
DAYS: La función DAYS devuelve un número entero que representa la fecha. El valor 1 respresenta el 1 del 1 de 0001.
Ej: Vemos que entero corresponde con la fecha '2012-02-01'
SELECT DAYS('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
734534
JULIAN_DAY: La función JULIAN_DAY devuelve un número entero que representa el número de días desde el 1 de Enero de 4713 A.C.
Ej: Vemos que día juliano corresponde con la fecha '2012-02-01'
SELECT JULIAN_DAY('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
-----------
2455959
LAST_DAY: La función LAST_DAY devuelve una fecha que representa el último día del mes pasado por argumento.
Ej: Vemos que fecha corresponde con el último día de la fecha '2012-02-01'
SELECT LAST_DAY('2012-02-01')
FROM SYSIBM.SYSDUMMY1;
COL1
----------
2012-02-29
NEXT_DAY: La función NEXT_DAY devuelve un timestamp que representa el siguiente día, al pasado por argumento, que se corresponde al día de la semana indicado por argumento.
Ej: Vemos que fecha se corresponde al siguiente Lunes a la fecha '2013-05-17'
SELECT NEXT_DAY('2013-05-17','MONDAY')
FROM SYSIBM.SYSDUMMY1;
COL1
--------------------------
2013-05-20-00.00.00.000000
Esperamos no dejarnos ninguna de las más habituales, de todas formas os recomendamos para profundizar en las funciones consultar el SQL Reference de IBM para DB2 10 z/OS.
Fuentes: SQL Reference (SC19-2983-03) IBM y Wikipedia
viernes, 22 de febrero de 2013
DB2 - Funciones escalares trigonométricas
Las funciones escalares se aplican a valores únicos de entrada, en lugar de a conjuntos de valores como las funciones agregadas, y devuelven un resultado de valor único.
Aquí veremos las funciones que nos proporciona DB2 para realizar cálculos trigonométricos (medición de los triángulos) . Haremos también una breve introducción a los conceptos básicos. (lo mismo ya los hemos reseteado :) )
Unidades angulares
En la medición de ángulos y, por tanto, en trigonometría, se emplean tres unidades, si bien la más utilizada en la vida cotidiana es el grado sexagesimal, en matemáticas es el radián la más utilizada, y se define como la unidad natural para medir ángulos, el grado centesimal se desarrolló como la unidad más próxima al sistema decimal, se usa en topografía, arquitectura o en construcción.
- Radián: unidad angular natural en trigonometría, será la que aquí utilicemos. En una circunferencia completa hay 2π radianes. (π = 3,141592653...)
- Grado sexagesimal: unidad angular que divide una circunferencia en 360 grados.
- Grado centesimal: unidad angular que divide la circunferencia en 400 grados centesimales.
DEGREES: devuelve el número de grados sexagesimales del argumento, que es un ángulo, expresado en radianes.
Ej: Aplicamos la función a 2π = 6,283185306 aprox, que es la circunferencia completa, por lo que nos tiene que devolver 360 grados.
SELECT DEGREES(6.283185306)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
3.600E+02
RADIANS: devuelve el número de radianes de un argumento que es expresada en grados sexagesimales.
Ej: Aplicamos la función a 360 grados, que es la circunferencia completa, por lo que nos tiene que devolver 2π = 6,283185306 radianes aprox.
SELECT RADIANS(360)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
6.283E+00
Funciones trigonométricas básicas
En geometría, se llama triángulo rectángulo a todo triángulo que posee un ángulo recto. El cateto es cualquiera de los dos lados menores de un triángulo rectángulo (los que conforman el ángulo recto) mientras que el lado mayor se denomina hipotenusa (el que es opuesto al ángulo recto).
El seno es la razón entre el cateto opuesto (a) sobre la hipotenusa (c).
El coseno es la razón entre el cateto adyacente (b) sobre la hipotenusa (c).
La tangente es la razón entre el cateto opuesto (a) sobre el cateto adyacente (b).
SIN: devuelve el seno del argumento, donde el argumento es un ángulo, expresado en radianes.
Ej: Aplicamos la función a 1/2π = 1,5707963265 radianes, que equivale a un ángulo de 90 grados, donde el seno es 1.
SELECT SIN(1.5707963265)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
1.000E+00
ASIN: devuelve el arco seno del argumento como un ángulo, expresado en radianes. ASIN y SIN son operaciones inversas.
Ej: Aplicamos la función de forma inversa al anterior ejemplo:
SELECT ASIN(1)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
1.571E+00
COS: devuelve el coseno del argumento, donde el argumento es un ángulo, expresado en radianes. COS y ACOS son operaciones inversas.
Ej: Aplicamos la función a 0π = 0 radianes, que equivale a un ángulo de 0 grados, donde el coseno es 1.
SELECT COS(0)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
1.000E+00
ACOS: devuelve el arco coseno del argumento como un ángulo, expresado en radianes. ACOS y COS son operaciones inversas.
Ej: Aplicamos la función de forma inversa al anterior ejemplo:
SELECT ACOS(1)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
0.000E+00
TAN: devuelve la tangente del argumento, donde el argumento es un ángulo, expresado en radianes.
Ej: Aplicamos la función a 1/4π = 0,78539816325 radianes, que equivale a un ángulo de 45 grados, donde la tangente es 1.
SELECT TAN(0.78539816325)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
1.000E+00
ATAN: devuelve el arco tangente del argumento como un ángulo, expresado en radianes. TAN y ATAN son operaciones inversas.
Ej: Aplicamos la función de forma inversa al anterior ejemplo:
SELECT ATAN(1)
FROM SYSIBM.SYSDUMMY1;
COL1
----------
7.854E-01
Otras funciones
ATAN2: devuelve el arco tangente de las coordenadas x e y como un ángulo, expresado en radianes.
SINH: devuelve el seno hiperbólico del argumento, donde el argumento es un ángulo expresado en radianes.
COSH: devuelve el coseno hiperbólico del argumento, donde el argumento es un ángulo expresado en radianes.
TANH: devuelve la tangente hiperbólica del argumento, donde el argumento es un ángulo expresado en radianes.
ATANH: devuelve el arco tangente hiperbólica de un número, expresado en radianes. ATANH y TANH son operaciones inversas.
Fuentes: SQL Reference (SC19-2983-03) IBM y Wikipedia
Suscribirse a:
Entradas (Atom)
