Supporto per le strutture temporali time_t

L'API fornisce funzioni per lavorare con la struttura time_t del C++. Le implementazioni di time_t differiscono nei vari sistemi; l'implementazione di Netezza Performance Server utilizza l'implementazione signed int32. Questa è l'implementazione utilizzata dai compilatori gcc 3.4.5 e diab, utilizzati da Netezza Performance Server per la compilazione di UDX. Questa implementazione ha una limitazione: supporta solo date comprese tra l'1/1/1970 e l'1/19/2038, ovvero valori da 0 a 2147483647, inclusi. Sebbene lo standard della struttura time_t supporti valori al di fuori di questo intervallo, il comportamento di questi altri valori non è garantito. Nelle restanti sezioni di questo documento si fa riferimento a questa specifica implementazione come "time_t".

L'API di aiuto ai tipi di dati supporta solo la decodifica e la codifica tra time_t e i tipi di dati Netezza Performance Server Date e Timestamp. Poiché l'intervallo di time_t è un sottoinsieme dell'intervallo di Netezza Performance Server Date e Timestamp, questa conversione consente solo valori nell'intervallo di time_t. La tabella seguente elenca diversi valori correlati tra time_t, Netezza Performance Server Date e Netezza Performance Server Timestamp. L'uso delle funzioni API per codificare o decodificare valori di Data o Timestamp al di fuori dell'intervallo di time_t provoca errori.

Tabella 1. Esempi di conversioni di time_t e Performance ServerNetezza® Date e Timestamp
Data e ora del calendario gregoriano valore time_t a UTC + 0:00 (GMT) NZ Valore della data Valore del timestamp NZ
Data NZ più bassa supportata: 1/1/0001, 00:00:00 NON DEFINITO -730.119 -63.082.281.600.000.000
time_t Inizio epoca: 1/1/1970, 00:00:00 0 -10.957 -946.684.800.000.000
NZ giorno zero: 1/1/2000, 00:00:00 946.684.800 0 0
time_t Fine dell'epoca: 1/19/2038, 03:14:07 2.147.483.647 13.898 1.200.798.847.000.000
Data NZ più alta supportata: 31.12.1999, 11:59:59.999999 NON DEFINITO 2.921.939 252.455.615.999.999.999