timestamp.c

来自「关系型数据库 Postgresql 6.5.2」· C语言 代码 · 共 115 行

C
115
字号
#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 + =
减小字号Ctrl + -
显示快捷键?