代码之家  ›  专栏  ›  技术社区  ›  ROBERT RICHARDSON

如何将存储为双精度值的儒略日期转换为至少一分钟分辨率的时间戳?

  •  0
  • ROBERT RICHARDSON  · 技术社区  · 5 年前

    我将数据从SQLite表导出到CSV文件。数据包括一个时间戳,分辨率至少为一分钟:“2019-11-15 01:30:06”。数据实际上存储为儒略日期,在本例中为2458802.35424295。我把数据导入了一个双精度字段。我需要把这个数字转换成带时区的时间戳。我尝试将双精度数字转换为文本,然后使用to_timestamp(),但这似乎只适用于整数天。我可以得到时间戳,但总是在正确日期的午夜。我尝试使用to_timestamp()传递我的数字,但这会返回一个epoch(自1970年1月1日以来的毫秒数)。

    我可以尝试取Julian日期值的小数部分,计算自午夜起表示的毫秒数,使用to_timestamp(text,text)方法获取我需要的日期,然后将自午夜起的epoch添加到该日期。但那太麻烦了。难道没有更好的方法吗?

    我使用的是postgresql9.3。

    注意:在我单击Post按钮之前出现的问题的简单答案是以我想要的形式导出数据,在导出过程中使用SQLite的datetime()函数将数字转换为日期字符串。但我仍然很好奇。我本以为会有一个标准的方法来做这种转换。

    0 回复  |  直到 5 年前