postgresql - 将字符串时间戳转换为日期

标签 postgresql date timestamp type-conversion postgresql-9.1

我在 postgres 数据库中有日期。问题是它们存储在字符串字段中并且具有类似于:“1187222400000”(对应于 07.08.2007)的值。 我想使用一些 SQL to_date() 表达式或类似的东西将它们转换为可读日期,但无法提出正确的语法来使其工作。

最佳答案

这里确实没有足够的信息来得出结论,所以我建议这个“科学的野驴猜测”来解决你的难题。 :)

似乎这个数字是UNIX“纪元时间”(以毫秒为单位)。我将展示这个示例,就好像您的字符串字段具有任意名称“epoch_milli”一样。在 postgresql 中,您可以使用以下语句将其转换为时间戳:

SELECT TIMESTAMP WITH TIME ZONE 'epoch' + epoch_milli * INTERVAL '1 millisecond';

或使用此 built-in postgresql function :

选择 to_timestamp(epoch_milli/1000)

其中任何一个,例如“1187222400000”,都会产生结果

"2007-08-15 17:00:00-07"

您可以使用与此类似的方式选择相当多的值来进行一些自己的调查:

SELECT to_timestamp(epoch_milli/1000)::DATE
FROM (VALUES (1187222400000),(1194122400000)) AS val(epoch_milli);

“好吧,胡说八道,伙计。我只是想要约会对象。”采取的观点。

简单地将时间戳转换为日期以丢弃多余的位:

SELECT to_timestamp(epoch_milli / 1000)::DATE

当然,此值可能是转换值或与其他值相关,因此请求第二个示例数据点。

关于postgresql - 将字符串时间戳转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988238/

相关文章:

java - ServerValue.TIMESTAMP 在 Firebase 中保存和检索时间戳

python - ElasticSearch 在 python 中请求范围时间戳

sql - PostgreSQL - 具有最小/最大值的连续天 - 表包含多个相等的天

ruby-on-rails - ActiveRecord belongs_to 关联中的 PostgreSQL jsonb 字段

javascript - 在 JavaScript 中处理日期(格式和时区)

date - Groovy - 将时间戳字符串转换为以毫秒为单位的纪元时间

python - 如何在 pandas/sql 中按分层数据分组?

database - 将 SQLITE SQL 转储文件转换为 POSTGRESQL

date - 在 Windows 7 批处理作业中格式化日期

c++ - 保持 .exe 时间戳不变