postgresql 将数字转换为日期和格式

Posted

技术标签:

【中文标题】postgresql 将数字转换为日期和格式【英文标题】:postgresql cast numeric to date and format 【发布时间】:2014-10-05 00:03:49 【问题描述】:

我在 postgresql 中将日期字段设为数字,日期中的值类似于 1401710352000,当我尝试使用 to_timestamp(date) 对其进行转换时,我得到相应的时间戳为“46388-06-07 10:40: 00+00"

我尝试用谷歌搜索它,我发现了关于如何在 postgresql 中进行不同类型转换的非常有用的函数,但我找不到如何将数字日期转换为适当的可读格式。如果有人能告诉我如何将数字日期字段转换为时间戳/日期可读格式,我会很高兴

沙赫

【问题讨论】:

【参考方案1】:

来自fine manual:

to_timestamp(double precision) 带时区的时间戳 将 Unix 纪元转换为时间戳

Unix 纪元以秒为单位,但看起来您的数值以毫秒为单位。如果我们修复这些单位,那么我们会得到一些看起来合理的东西:

=> select to_timestamp(1401710352000::numeric/1000);
      to_timestamp      
------------------------
 2014-06-02 04:59:12-07

因此,您可能只需要在调用to_timestamp 之前将单位除以 1000。

【讨论】:

日期格式正确但转换的日期仍然错误.. to_timestamp(1505468541312:numeric/1000) .....它应该是 currentdate 即 2017-09-25 ....但它会在 2017 年 9 月 15 日到来 什么是 :: 在上面的演员表中? @JGS 是的,:: 是一种类型转换,与cast(1401710352000 as numeric) 相同,否则/ 将是整数除法。为什么您希望 1505468541312 是当前日期?上述格式的当前日期为1506297600000 当我在现有数据库表中插入一条记录时,它将此值插入为当前日期的 1505468541312 @JGS 你是怎么插入的?你什么时候插入的?【参考方案2】:

我在几秒钟内就有了“fecha”字段。我必须将其转换为日期才能进行比较(格式化)。我是这样做的:

select to_char(to_timestamp(fecha),'DD/MM/YYYY') from...

【讨论】:

以上是关于postgresql 将数字转换为日期和格式的主要内容,如果未能解决你的问题,请参考以下文章

powerbi数字为啥转不了日期

日期和数字格式

在excel中如何将输入的数字自动转换为日期

mysql中怎么把日期的格式转换为YYYYMMDD的数字形式,谢谢

js中怎么把日期转换成数字?

Excel 怎样把数字字符串改成日期