Funciones de fecha y hora

CLEM incluye un grupo de funciones para la gestión de campos con almacenamiento de fecha y hora de variables de cadena que representan fechas y horas. Los formatos de fecha y hora utilizados son específicos de cada ruta y se especifican en el cuadro de diálogo de propiedades de la ruta. Las funciones de fecha y hora analizan las cadenas de fecha y hora en función del formato seleccionado actualmente.

Cuando se especifica un año en una fecha que utiliza sólo dos dígitos (es decir, el siglo no se especifica), IBM® SPSS Modeler utiliza el siglo predeterminado que se ha especificado en el cuadro de diálogo de propiedades de la ruta.

Nota: Si la función de datos se retrotrae a SQL o IBM SPSS Analytic Server, en una rama que siga un origen de datos de Analytic Server, las cadenas de formato de fecha (to_date) en dichos datos deben coincidir con el formato de fecha especificado en la ruta de SPSS Modeler.
Tabla 1. Funciones de fecha y hora de CLEM
Función Resultado Descripción
@TODAY Cadena Si selecciona Admitir fecha/mín. negativos en el cuadro de diálogo de propiedades de la ruta, esta función devuelve la fecha actual, como una cadena, con el formato de fecha actual. Si utiliza un formato de fecha de dos dígitos y no selecciona Admitir fecha/mín. negativos, esta función devuelve $null$ en el servidor actual.
to_time(ELEMENTO) Hora Convierte el almacenamiento del campo especificado en una hora.
to_date(ELEMENTO) Fecha Convierte el almacenamiento del campo especificado en una fecha.
to_timestamp(ELEMENTO) Marca de tiempo Convierte el almacenamiento del campo especificado en una marca de tiempo.
to_datetime(ELEMENTO) Momento_fecha Convierte el almacenamiento del campo especificado en una fecha, hora o marca de tiempo.
datetime_date(ELEMENTO) Fecha Devuelve el valor de fecha de un número, cadena o marca de tiempo. Tenga en cuanta que es la única función que le permite volver a convertir un número (en segundos) en una fecha. Si ELEMENTO es una cadena, crea una fecha analizando una cadena en el formato de fecha actual. El formato de fecha especificado en el cuadro de diálogo de propiedades de la ruta debe ser correcto para que esta función se ejecute correctamente. Si ELEMENTO es un número, se interpreta como un número de segundos desde la fecha de base (o época). Las fracciones de un día se truncan. Si ELEMENTO es una marca de tiempo, la parte de la fecha de la marca de tiempo se devuelve. Si ELEMENTO es una fecha, se devuelve sin modificar.
date_before(FECHA1, FECHA2) Booleana Devuelve un valor de verdadero si FECHA1 representa una fecha o marca de tiempo anterior a la representada por FECHA2. En el resto de los casos, esta función devuelve 0.
date_days_difference(FECHA1, FECHA2) Entero Devuelve el tiempo en días desde la fecha o marca de tiempo representada por FECHA1 hasta la fecha representada por FECHA2, como un entero. Si FECHA2 es anterior a FECHA1, esta función devuelve un número negativo.
date_in_days(FECHA) Entero Devuelve el tiempo en días desde la fecha de línea base hasta la fecha o marca de tiempo representada por FECHA, como un entero. Si FECHA es anterior a la fecha de línea base, esta función devuelve un número negativo. Debe incluir una fecha válida para que el cálculo se realice correctamente. Por ejemplo, no debe especificar 29 de febrero de 2001 como fecha. Dado que 2001 no es un año bisiesto, esta fecha no existe.
date_in_months(FECHA) Real Devuelve el tiempo en meses desde la fecha de línea base hasta la fecha o marca de tiempo representada por FECHA, como un número real. Esta cifra es aproximada; se basa en un mes de 30.4375 días. Si FECHA es anterior a la fecha de línea base, esta función devuelve un número negativo. Debe incluir una fecha válida para que el cálculo se realice correctamente. Por ejemplo, no debe especificar 29 de febrero de 2001 como fecha. Dado que 2001 no es un año bisiesto, esta fecha no existe.
date_in_weeks(FECHA) Real Devuelve el tiempo en semanas desde la fecha de línea base hasta la fecha o marca de tiempo representada por FECHA, como un número real. Éste se basa en una semana de 7,0 días. Si FECHA es anterior a la fecha de línea base, esta función devuelve un número negativo. Debe incluir una fecha válida para que el cálculo se realice correctamente. Por ejemplo, no debe especificar 29 de febrero de 2001 como fecha. Dado que 2001 no es un año bisiesto, esta fecha no existe.
date_in_years(FECHA) Real Devuelve el tiempo en años desde la fecha de línea base hasta la fecha o marca de tiempo representada por FECHA, como un número real. Esta cifra es aproximada; se basa en un año de 365.25 días. Si FECHA es anterior a la fecha de línea base, esta función devuelve un número negativo. Debe incluir una fecha válida para que el cálculo se realice correctamente. Por ejemplo, no debe especificar 29 de febrero de 2001 como fecha. Dado que 2001 no es un año bisiesto, esta fecha no existe.
date_months_difference (FECHA1, FECHA2) Real Devuelve el tiempo en meses desde la fecha o marca de tiempo representada por FECHA1 hasta la fecha representada por FECHA2, como un número real. Esta cifra es aproximada; se basa en un mes de 30.4375 días. Si FECHA2 es anterior a FECHA1, esta función devuelve un número negativo.
datetime_date(AÑO, MES, DÍA) Fecha Crea un valor de fecha para los valores AÑO, MES y DÍA especificados. Los argumentos deben ser enteros.
datetime_day(FECHA) Entero Devuelve el día del mes de una FECHA o marca de tiempo especificada. El resultado es un entero comprendido entre 1 y 31.
datetime_day_name(DÍA) Cadena Devuelve el nombre completo del DÍA especificado. El argumento debe ser un entero comprendido entre 1 (domingo) y 7 (sábado).
datetime_hour(TIEMPO) Entero Devuelve la hora de una HORA o marca de tiempo. El resultado es un entero comprendido entre 0 y 23.
datetime_in_seconds(TIEMPO) Real Devuelve la segunda parte almacenada en TIEMPO.
datetime_in_seconds(FECHA), datetime_in_seconds(MOMENTO DE FECHA) Real Devuelve el número acumulado, convertido en segundos, desde la diferencia entre la FECHA o MOMENTO DE FECHA actual y la fecha de línea base (01-01-1900).
datetime_minute(TIEMPO) Entero Devuelve el minuto de una HORA o marca de tiempo. El resultado es un entero comprendido entre 0 y 59.
datetime_month(FECHA) Entero Devuelve el mes de una FECHA o marca de tiempo. El resultado es un entero comprendido entre 1 y 12.
datetime_month_name (MES) Cadena Devuelve el nombre completo del MES especificado. El argumento debe ser un entero comprendido entre 1 y 12.
datetime_now Marca de tiempo Devuelve la hora actual como una marca de tiempo.
datetime_second(TIEMPO) Entero Devuelve el segundo de una HORA o marca de tiempo. El resultado es un entero comprendido entre 0 y 59.
datetime_day_short_name (DÍA) Cadena Devuelve el nombre abreviado del DÍA especificado. El argumento debe ser un entero comprendido entre 1 (domingo) y 7 (sábado).
datetime_month_short_name (MES) Cadena Devuelve el nombre abreviado del MES especificado. El argumento debe ser un entero comprendido entre 1 y 12.
datetime_time(HORA, MINUTO, SEGUNDO) Hora Devuelve el valor de tiempo para los valores HORA, MINUTO y SEGUNDO especificados. Los argumentos deben ser enteros.
datetime_time(ELEMENTO) Hora Devuelve el valor de tiempo del ELEMENTO especificado.
datetime_timestamp(AÑO, MES, DÍA, HORA, MINUTO, SEGUNDO) Marca de tiempo Devuelve el valor de marca de tiempo para los valores AÑO, MES, DÍA, HORA, MINUTO y SEGUNDO especificados.
datetime_timestamp(FECHA, TIEMPO) Marca de tiempo Devuelve el valor de marca de tiempo para los valores FECHA y HORA especificados.
datetime_timestamp (NÚM) Marca de tiempo Devuelve el valor de marca de tiempo del número especificado de segundos.
datetime_weekday(FECHA) Entero Devuelve el día de la semana a partir de la FECHA o marca de tiempo especificada.
datetime_year(FECHA) Entero Devuelve el año a partir de una FECHA o marca de tiempo. El resultado es un entero como, por ejemplo, 2002.
date_weeks_difference (FECHA1, FECHA2) Real Devuelve el tiempo en semanas desde la fecha o marca de tiempo representada por FECHA1 hasta la fecha representada por FECHA2, como un número real. Éste se basa en una semana de 7,0 días. Si FECHA2 es anterior a FECHA1, esta función devuelve un número negativo.
date_years_difference (FECHA1, FECHA2) Real Devuelve el tiempo en años desde la fecha o marca de tiempo representada por FECHA1 hasta la fecha representada por FECHA2, como un número real. Esta cifra es aproximada; se basa en un año de 365.25 días. Si FECHA2 es anterior a FECHA1, esta función devuelve un número negativo.
date_from_ywd(YEAR, WEEK, DAY) Entero Convierte el año, semana del año y día de la semana a una fecha utilizando el estándar ISO 8601.
date_iso_day(DATE) Entero Devuelve el día de la semana a partir de la fecha utilizando el estándar ISO 8601.
date_iso_week(DATE) Entero Devuelve la semana del año a partir de la fecha utilizando el estándar ISO 8601.
date_iso_year(DATE) Entero Devuelve el año a partir de la fecha utilizando el estándar ISO 8601.
time_before(TIEMPO1, TIEMPO2) Booleana Devuelve un valor verdadero si HORA1 representa una hora o marca de tiempo anterior a la representada por HORA2. En el resto de los casos, esta función devuelve 0.
time_hours_difference (TIEMPO1, TIEMPO2) Real Devuelve el número de horas de diferencia que hay entre las horas o marcas de tiempo representadas por HORA1 y HORA2, como un número real. Si selecciona Admitir fecha/mín. negativos en el cuadro de diálogo de propiedades de la ruta, se toma un valor superior de HORA1 para hacer referencia al día anterior. Si no selecciona la opción de admisión de negativos, un valor superior de HORA1 hará que el valor devuelto sea negativo.
time_in_hours(TIEMPO) Real Devuelve el número de horas representado por HORA, como un número real. Por ejemplo, con el formato de hora HHMM, la expresión time_in_hours('0130') se evalúa como 1,5. HORA puede representar una hora o una marca de tiempo.
time_in_mins(TIEMPO) Real Devuelve el número de minutos representado por HORA, como un número real. HORA puede representar una hora o una marca de tiempo.
time_in_secs(TIEMPO) Entero Devuelve el número de segundos representado por HORA, como un entero. HORA puede representar una hora o una marca de tiempo.
time_mins_difference(TIEMPO1, TIEMPO2) Real Devuelve el número de minutos de diferencia que hay entre las horas o marcas de tiempo representadas por HORA1 y HORA2, como un número real. Si selecciona Admitir fecha/mín. negativos en el cuadro de diálogo de propiedades de la ruta, se toma un valor superior de HORA1 para hacer referencia al día anterior (o la hora anterior, si sólo se especifican minutos y segundos en el formato actual). Si no selecciona la opción de admisión de negativos, un valor superior de HORA1 hará que el valor devuelto sea negativo.
time_secs_difference(TIEMPO1, TIEMPO2) Entero Devuelve el número de segundos de diferencia que hay entre las horas o marcas de tiempo representadas por HORA1 y HORA2, como un entero. Si selecciona Admitir fecha/mín. negativos en el cuadro de diálogo de propiedades de la ruta, se toma un valor superior de HORA1 para hacer referencia al día anterior (o la hora anterior, si sólo se especifican minutos y segundos en el formato actual). Si no selecciona la opción de admisión de negativos, un valor superior de HORA1 hará que el valor devuelto sea negativo.