将字符串时间戳转换为日期
Converting string timestamp into date
我在 postgres 数据库中有日期。问题是它们存储在字符串字段中并且具有类似于:“1187222400000”(对应于 07.08.2007)的值。
我想使用一些 SQL to_date() 表达式或类似的东西将它们转换成可读的日期,但无法想出正确的语法来使其工作。
这里确实没有足够的信息来得出结论,所以我建议 'scientific-wild-ass-guess' 来解决您的难题。 :)
它出现这个数字是UNIX 'epoch time'毫秒。我将显示此示例,就好像您的字符串字段具有任意名称 'epoch_milli'。在 postgresql 中,您可以使用以下语句将其转换为时间戳:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + epoch_milli * INTERVAL '1 millisecond';
或使用此 built-in postgresql function:
SELECT 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);
"Well, bollocks, man. I just want the date." 得分。
只需将时间戳转换为日期即可丢弃多余的位:
SELECT to_timestamp(epoch_milli / 1000)::DATE
当然,此值可能是转换值或与其他值相关,因此请求第二个示例数据点。
我在 postgres 数据库中有日期。问题是它们存储在字符串字段中并且具有类似于:“1187222400000”(对应于 07.08.2007)的值。 我想使用一些 SQL to_date() 表达式或类似的东西将它们转换成可读的日期,但无法想出正确的语法来使其工作。
这里确实没有足够的信息来得出结论,所以我建议 'scientific-wild-ass-guess' 来解决您的难题。 :)
它出现这个数字是UNIX 'epoch time'毫秒。我将显示此示例,就好像您的字符串字段具有任意名称 'epoch_milli'。在 postgresql 中,您可以使用以下语句将其转换为时间戳:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + epoch_milli * INTERVAL '1 millisecond';
或使用此 built-in postgresql function:
SELECT 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);
"Well, bollocks, man. I just want the date." 得分。
只需将时间戳转换为日期即可丢弃多余的位:
SELECT to_timestamp(epoch_milli / 1000)::DATE
当然,此值可能是转换值或与其他值相关,因此请求第二个示例数据点。