13 #define xroad_datetime_null (xroad_datetime_t){0}
37 uint8_t sec, uint32_t usec, xroad_tzone_t tz);
73 #define xroad_datetime_to_str(dt) \
75 char* buff = (char*)alloca(64); \
76 int32_t s = xroad_format(buff, 64, "%04d-%02d-%02d %02d:%02d:%02d", \
77 dt.year, dt.month, dt.day, dt.hour, dt.min, dt.sec); \
80 s += xroad_format(buff + s, 64 - s, ".%D", dt.usec); \
84 s += xroad_format(buff + s, 64 - s, " %P", xroad_tzone_get_name(dt.tz)); \
86 xroad_str_len(buff, s); \
94 #define xroad_datetime_to_sql(v) \
98 xroad_datetime_t dt = (v); \
99 if (!xroad_datetime_is_null(dt)) \
101 xroad_str_t s = xroad_datetime_to_str(dt); \
102 buf = alloca(s.len + 2); \
104 memcpy(buf + 1, s.data, s.len); \
105 buf[s.len + 1] = '\''; \
108 xroad_str_len(buf, len); \
Definition: xroad_date.h:20
Definition: xroad_datetime.h:21
Definition: xroad_string.h:29
Definition: xroad_time.h:26
xroad_datetime_t xroad_datetime_from_parts(xroad_date_t date, xroad_time_t time)
int64_t xroad_datetime_cmp(xroad_datetime_t lhs, xroad_datetime_t rhs)
void xroad_datetime_set_date(xroad_datetime_t *dt, xroad_date_t date)
xroad_datetime_t xroad_datetime_create(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t min, uint8_t sec, uint32_t usec, xroad_tzone_t tz)
xroad_timestamp_t xroad_datetime_to_ts(xroad_datetime_t dt)
xroad_date_t xroad_datetime_get_date(xroad_datetime_t dt)
xroad_time_t xroad_datetime_get_time(xroad_datetime_t dt)
void xroad_datetime_set_time(xroad_datetime_t *dt, xroad_time_t time)
xroad_datetime_t xroad_datetime_from_str(xroad_str_t date)
xroad_datetime_t xroad_datetime_now(xroad_tzone_t tz)
xroad_datetime_t xroad_datetime_from_ts(xroad_timestamp_t ts, xroad_tzone_t tz)
bool xroad_datetime_is_null(xroad_datetime_t dt)