gpt4 book ai didi

postgresql - 将自 01/01/2000 以来的纳秒转换为 postgresql 中的时间戳

转载 作者:行者123 更新时间:2023-11-29 12:50:30 33 4
gpt4 key购买 nike

我目前正在查询一个数据库,其中包含自 2000 年 1 月 1 日以来以纳秒表示的时间戳列。例如,我的值是:

600393600000000000

可以使用以下代码(用 Dart 编写但仅作为示例)将其转换为日期:

  DateTime epoch = new DateTime(2000, 1, 1);
var date = epoch.add(new Duration(microseconds:(600393600000000000 / 1000).floor()));
print(date);

这将打印:

2019-01-10 00:00:00.000

我的目标是通过查询而不是使用任何应用程序代码将其转换为 postgresql timestampz。我知道 postgresql 具有 to_timestamp() 函数,可用于从 unix 时间创建时间戳,但找不到用于此的方法。

有人能帮忙吗?

最佳答案

正如已经提到的,使用以下构造:

to_timestamp(extract(epoch from '2000-01-01 00:00:00Z'::timestamptz) + (<your_nanos>::decimal / 1000000000))

...例如:

select to_timestamp(extract(epoch from '2000-01-01 00:00:00Z'::timestamptz) + (600393600123456789::decimal / 1000000000));

...产量:

         to_timestamp          
-------------------------------
2019-01-10 00:00:00.123457+00
(1 row)

关于postgresql - 将自 01/01/2000 以来的纳秒转换为 postgresql 中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55267582/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com