在PostgreSQL中存储基于NodaTime的值的最佳方法是什么?
作者:互联网
我们正在实现PostgreSQL,并且还决定使用NodaTime代替标准的.NET DateTime. PostgreSQL具有“带时区的时间戳”类型,并且NodaTime通过SystemClock.Instance.Now方法返回带有时区的日期和时间值.但是,SystemClock.Instance.Now(2015-07-17T13:22:52Z)返回的值不能直接写入PostgreSQL字段.是否有处理NodaTime / PostgreSQL实现的最佳实践?
解决方法:
据我了解,“带时区的时间戳”无论如何都是错误的说法-只是“您提供一个具有本地值的时区,PostgreSQL将存储UTC” …换句话说,这实际上是一次额外的转换,而不是存储更多数据.
如果您只是想存储即时消息,则时间戳作为数据类型应该没问题.在将值获取到数据库方面,您可能应该将其转换为DateTimeOffset,然后由驱动程序处理.存储时将使用Instant.ToDateTimeOffset
,检索时将使用Instant.FromDateTimeOffset
.
标签:postgresql,nodatime,c 来源: https://codeday.me/bug/20191028/1949719.html