pgator.db.pq.types.time

PostgreSQL time types binary format.

There are following supported libpq formats: <ul> <li>date - handles year, month, day. Corresponding D type - std.datetime.Date.</li> <li>abstime - unix time in seconds without timezone. Corresponding D type - PGAbsTime wrapper around std.datetime.SysTime.</li> <li>reltime - seconds count positive or negative for representation of time durations. Corresponding D type - PGRelTime wrapper around core.time.Duration. Note that D's duration holds hnsecs count, but reltime precise at least seconds.</li> <li>time - day time without time zone. Corresponding D type - PGTime wrapper around std.datetime.TimeOfDay.</li> <li>time with zone - day time with time zone. Corresponding D type - PGTimeWithZone structure that can be casted to std.datetime.TimeOfDay and std.datetime.SimpleTimeZone.</li> <li>interval - time duration (modern replacement for reltime). Corresponding D time - TimeInterval that handles microsecond, day and month counts.</li> <li>tinterval - interval between two points in time. Consists of two abstime values: begin and end. Correponding D type - PGInterval wrapper around std.datetime.Interval.</li> </ul> *

Members

Functions

_D3std8datetime36__T8IntervalTS3std8datetime7SysTimeZ8Interval11__invariantMxFNaZv
void _D3std8datetime36__T8IntervalTS3std8datetime7SysTimeZ8Interval11__invariantMxFNaZv()

Avoiding linking problems when std.datetime.Interval invariant isn't generated by dmd. See at: std.datetime.Interval:18404

Structs

PGAbsTime
struct PGAbsTime

Wrapper around SysTime to handle libpq abstime. * Note: abstime is stored in UTC timezone.

PGInterval
struct PGInterval

Wrapper around std.datetime.Interval to handle deserializing acceptable for JSON-RPC and still conform with libpq format. * Note: libpq representation of abstime slightly different from std.datetime, thats why time converted to string could differ a lot for PostgreSQL and SysTime (about 9000-15000 seconds nonconstant offset).

PGRelTime
struct PGRelTime

Wrapper around Duration to handle libpq reltime. * Note: reltime can be negative.

PGTime
struct PGTime

Wrapper around TimeOfDay to allow serializing to bson.

PGTimeStamp
struct PGTimeStamp

Wrapper around std.datetime.SysTime to handle deserializing of libpq timestamps (without time zone). * Note: libpq has two compile configuration with HAS_INT64_TIMESTAMP and without (double timestamp format). The pgator should be compiled with conform flag to operate properly.

PGTimeStampWithZone
struct PGTimeStampWithZone

Wrapper around std.datetime.SysTime to handle deserializing of libpq time stamps with time zone. * Timezone is acquired from PQparameterStatus call for TimeZone parameter. Database server doesn't send any info about time zone to client, the time zone is important only while showing time to an user. * Note: libpq has two compile configuration with HAS_INT64_TIMESTAMP and without (double time stamp format). The pgator should be compiled with conform flag to operate properly.

PGTimeWithZone
struct PGTimeWithZone

Represents PostgreSQL Time with TimeZone. Time zone is stored as UTC offset in seconds without DST.

TimeInterval
struct TimeInterval

PostgreSQL time interval isn't same with D std.datetime one. It is simple Duration. * Consists of: microseconds time, day count and month count. Libpq uses different represantation for time, but i store only in usecs format.

Meta

Authors

NCrashed <ncrashed@gmail.com>

License

Subject to the terms of the MIT license, as written in the included LICENSE file.