I know I can convert SQL timestamp to unix timestamp, using the following way.
SELECT extract(epoch FROM now());
Now, I have a stored procedure function, which will directly return a table row to the caller. One of the row field is "timestamp" type.
In my application, I am using libpq. I wish to use libpq functions (or any c/c++ function), to convert "2010-01-11 13:10:55.283" into unix timestamp. Off course, I can create another stored procedure named
SQLTimestamp2UnixTimestamp
SELECT extract(epoch FROM $1);
But I just wish to accomplish this task with a single c/c++ function call, without involving stored procedure.
Any suggestion? Thanks!
Why not simply (untested):
/* PostgreSQL sent "date" */
strptime(date, "%Y-%m-%d %H:%M:%S", &result);
then
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);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.