📄 timestamp.c
字号:
#include <time.h>#include <ctype.h>#include "postgres.h"#include "access/xact.h"#include "miscadmin.h"#include "utils/builtins.h"time_ttimestamp_in(const char *timestamp_str){ int4 result; result = nabstimein((char *) timestamp_str); return result;}char *timestamp_out(time_t timestamp){ char *result; int tz; double fsec = 0; struct tm tt, *tm = &tt; char buf[MAXDATELEN + 1]; char zone[MAXDATELEN + 1], *tzn = zone; switch (timestamp) { case EPOCH_ABSTIME: strcpy(buf, EPOCH); break; case INVALID_ABSTIME: strcpy(buf, INVALID); break; case CURRENT_ABSTIME: strcpy(buf, DCURRENT); break; case NOEND_ABSTIME: strcpy(buf, LATE); break; case NOSTART_ABSTIME: strcpy(buf, EARLY); break; default: abstime2tm(timestamp, &tz, tm, tzn); EncodeDateTime(tm, fsec, &tz, &tzn, USE_ISO_DATES, buf); break; } result = palloc(strlen(buf) + 1); strcpy(result, buf); return result;} /* timestamp_out() */time_tnow(void){ time_t sec; sec = GetCurrentTransactionStartTime(); return sec;}booltimestampeq(time_t t1, time_t t2){ return abstimeeq(t1, t2);}booltimestampne(time_t t1, time_t t2){ return abstimene(t1, t2);}booltimestamplt(time_t t1, time_t t2){ return abstimelt(t1, t2);}booltimestampgt(time_t t1, time_t t2){ return abstimegt(t1, t2);}booltimestample(time_t t1, time_t t2){ return abstimele(t1, t2);}booltimestampge(time_t t1, time_t t2){ return abstimege(t1, t2);}DateTime *timestamp_datetime(time_t timestamp){ return abstime_datetime((AbsoluteTime) timestamp);} /* timestamp_datetime() */time_tdatetime_timestamp(DateTime *datetime){ return (AbsoluteTime) datetime_abstime(datetime);} /* datetime_timestamp() */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -