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`
что-то похожее на этот ответ: Получение точного времени выполнения в C ++ (микросекунды)
Затем отправьте ваш объект / запись в PostGRESQL,при извлечении в микросекундах настройте точность /1000 for milliseconds
и т. д.
Просто не забудьте синхронизировать длину метки времени PostgreSQL и C ++ (например, 8 байтов - 8 байтов с каждой стороны), в противном случае ваше время будет пороговымсторона, и вы потеряете точность / получите неожиданное время.