繁体   English   中英

PostgreSQL:使用libpq的Unix时间戳的SQL时间戳

[英]PostgreSQL : SQL timestamp to Unix timestamp using libpq

我知道我可以使用以下方法将SQL时间戳转换为unix时间戳。

SELECT extract(epoch FROM now());

现在,我有一个存储过程函数,它将直接将一个表行返回给调用者。 其中一个行字段是“timestamp”类型。

在我的应用程序中,我使用的是libpq。 我希望使用libpq函数(或任何c / c ++函数)将“2010-01-11 13:10:55.283”转换为unix时间戳。 当然,我可以创建另一个名为的存储过程

SQLTimestamp2UnixTimestamp
SELECT extract(epoch FROM $1);

但我只希望通过单个c / c ++函数调用来完成此任务,而不涉及存储过程。

有什么建议吗? 谢谢!

为什么不简单(未经测试):

/* PostgreSQL sent "date" */
strptime(date, "%Y-%m-%d %H:%M:%S", &result);

然后

strftime(epoch, MAX, "%s", result);
/* print epoch */
boost::posix_time::ptime t(boost::posix_time::time_from_string(ts));
boost::posix_time::ptime start(boost::gregorian::date(1970,1,1)); 
boost::posix_time::time_duration dur = t - start; 
time_t epoch = dur.total_seconds();

long timestamp = static_cast<long>(epoch);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM