在类/对象中存储日期和时间的最佳实践是什么?

时间:2018-12-08 23:04:18

标签: c++ postgresql date datetime time

最近,我要连接到PostgreSQL,我需要将日期/时间存储在对象中,以传递给查询以进行插入和更新某些表。 但是在c ++中没有明确的方法来存储和检索日期/时间。 有何评论?

1 个答案:

答案 0 :(得分:0)

PostgreSQL TimeFormat 9+版本 https://www.postgresql.org/docs/9.1/datatype-datetime.html

这是一种8byte int(64 bit)精度的microsecond时间格式,没有时区的UTC(从表顶部开始)。

创建表时,可以通过PostgreSQL current_timestamp为记录加上时间戳,也可以将整数64bit microsecond format插入表中。由于PostgreSQL有多种时间格式,因此您应该从表中选择所需的任何时间格式

  

PostgreSQL方法CREATE,INSERT,RETRIEVE

"CREATE TABLE example_table(update_time_column TIMESTAMP DEFAULT CURRENT_TIMESTAMP)"

"INSERT INTO example_table(update_time_column) VALUES update_time_column=CURRENT_TIMESTAMP"

"SELECT (EXTRACT(epoch FROM update_time_column)*1000000) FROM example_table"
  

C ++方法

auto/int64_t cppTime = get64bitMicrosecondFormat from some library`

类似于以下答案:Getting an accurate execution time in C++ (micro seconds)

然后将您的对象/记录推送到PostGRESQL,以毫秒为单位检索时,调整精度/1000 for milliseconds等。

  

请不要忘记同步PostgreSQL和C ++时间戳的长度(例如,每侧8字节-8字节),否则,您的时间将受到限制,并且您将失去精度/获得意外的时间。