簡體   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