The Open Client and Open Server CS_BIGDATETIME and CS_BIGTIME datatypes provide microsecond-level precision for time data. These datatypes are intended to hold 8-byte binary values.
These datatypes function similarly to the respective CS_DATETIME and CS_TIME datatypes: CS_BIGDATETIME can be used anywhere that CS_DATETIME can be used, and CS_BIGTIME can be used anywhere that CS_TIME can be used. All Open Client and Open Server routines that can be applied to the CS_DATETIME and CS_TIME datatypes can also be applied to the CS_BIGDATETIME and CS_BIGTIME datatypes.
CS_BIGDATETIME corresponds to the Adaptive Server bigdatetime datatype, and contains the number of microseconds that have passed since January 1, 0000 00:00:00.000000. The range of legal CS_BIGDATETIME values is from January 1, 0001 00:00:00.000000 to December 31, 9999 23:59:59.999999.
January 1, 0000 00:00:00.000000 is the base starting value from which microseconds are counted. Any value earlier than January 1, 0001 00:00:00.000000 is invalid.
The definition of CS_BIGDATETIME can be found in cstypes.h:
typedef CS_UBIGINT CS_BIGDATETIME;
CS_BIGTIME corresponds to the Adaptive Server bigtime datatype and indicates the number of microseconds that have passed since the beginning of the day. The range of legal CS_BIGTIME values is from 00:00:00.000000 to 23:59:59.999999. The definition of CS_BIGTIME can be found in cstypes.h:
typedef CS_UBIGINT CS_BIGTIME;
CS_BIGDATETIME and CS_BIGTIME data is presented to the client in the native-byte order (endianness) of the underlying client platform. Any necessary byte-swapping is performed at the server before the data is sent to the client, or after the data is received from the client.
For information about Open Client and Open Server datatypes, see the Open Client Client-Library/C Reference Manual and Open Server Sever-Library/C Reference Manual, respectively.