Soporte para estructuras temporales time_t

La API proporciona funciones para trabajar con la estructura de C++ time_t. Las implementaciones de time_t difieren en los distintos sistemas; la implementación de Netezza Performance Server utiliza la implementación signed int32. Esta es la implementación que utilizan los compiladores gcc 3.4.5 y diab, utilizados por Netezza Performance Server para la compilación UDX. Esta implementación tiene una limitación, concretamente soporta fechas sólo entre el 1/1/1970 y el 1/19/2038, que son valores de 0 a 2147483647, incluidos. Aunque el estándar de la estructura time_t soporta valores fuera de ese rango, el comportamiento de esos otros valores no se garantiza. El resto de la sección de este documento hace referencia a esta implementación específica como "time_t".

La API de ayuda de tipos de datos sólo admite la descodificación y codificación entre time_t y los tipos de datos Date y Timestamp de Netezza Performance Server. Dado que el rango de time_t es un subconjunto del rango de Netezza Performance Server Date y Timestamp, esta conversión sólo permite valores en el rango de time_t. La siguiente tabla enumera varios valores correlacionados entre time_t, ' Netezza Performance Server Date y ' Netezza Performance Server ' Timestamp. El uso de funciones de API para codificar y descodificar valores de Date o Timestamp fuera del rango de time_t da errores.

Tabla 1. Ejemplos de conversiones time_t y Performance ServerNetezza® Date y Timestamp
Fecha y hora del calendario gregoriano valor time_t en UTC + 0:00 (GMT) valor de NZ Date valor de NZ Timestamp
Fecha de NZ más baja soportada: 1/1/0001, 00:00:00 SIN DEFINIR -730.119 -63.082.281.600.000.000
Inicio de time_t Epoch: 1/1/1970, 00:00:00 0 -10.957 -946.684.800.000.000
Día cero de NZ: 1/1/2000, 00:00:00 946.684.800 0 0
Final de time_t Epoch: 1/19/2038, 03:14:07 2.147.483.647 13.898 1.200.798.847.000.000
Fecha de NZ más alta soportada: 12/31/9999, 11:59:59,999999 SIN DEFINIR 2.921.939 252.455.615.999.999.999