[odb-users] time_point to timestamp - pgsql?

Boris Kolpackov boris at codesynthesis.com
Thu Sep 7 07:04:17 EDT 2023


Anurag Gupta <anuragg at miltenyi.com> writes:

> using datetime = std::chrono::system_clock::time_point;
> #pragma db value (datetime) type ("timestamp") // Is this correct?

This will work but you will need to provide the value_traits
implementation for converting time_point to the PosgreSQL TIMESTAMP
type.

Alternatively, you can try something easier like this:

#pragma db map type(std::chrono::system_clock::time_point) as(std::uint64_t) \
  to(std::chrono::duration_cast<std::chrono::nanoseconds> (                  \
       (?).time_since_epoch ()).count ())                                    \
  from(std::chrono::system_clock::time_point (                               \
    std::chrono::duration_cast<std::chrono::system_clock::duration> (        \
      std::chrono::nanoseconds (?))))

This will store the time_point value as a number of nanoseconds since
the UNIX epoch.

Previously: https://codesynthesis.com/pipermail/odb-users/2019-September/004342.html



More information about the odb-users mailing list