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 将数字转换为日期和格式的主要内容,如果未能解决你的问题,请参考以下文章