postgresql 毫秒转日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql 毫秒转日期相关的知识,希望对你有一定的参考价值。

我用 to_timestamp(double) 这个函数转的
毫秒数: 1453702970185
转完后:48036-01-06 04:36:24.999936+08
怎么才能转成正常的格式?

参考技术A 强转下吧 转成日期
cast(字段名 as date)
或者可以用substr截取追问

SELECT
cast(gather_time as date)
FROM
app_gather_info where del_flag = '0'
结果:
[Err] 错误: 无法把类型 bigint 转换为 date
LINE 2: cast(gather_time as date)

追答

那就转varchar 再转 date
cast(gather_time as varchar(20))
截前8位 转date

追问

SELECT
cast(cast(gather_time as varchar(20)) as date)
FROM
app_gather_info where del_flag = '0'
结果:
[Err] 错误: 日期/时间值超出范围: "1453982879849"
HINT: 也许你需要不同的 "datesytle" 设置.

追答

不不不 你先把这个 结果粘给我看看
SELECT
cast(gather_time as varchar(20) )
FROM
app_gather_info where del_flag = '0'

追问

gather_time
1453982879849
1454388798986
1453980442547
1453874578683
1453703024498
1453979728921
1453703519116

追答

你这数据 本来就不对。。。
本身就不是timestamp...
晃点我
加我球球吧:说不清了。。。 851411534

追问

但是这些数据在java中可以转成正常的日期呀,app传过来的毫秒数就是这样子了,你意思他们传的有问题,那么java中为什么可以正常转呢?

本回答被提问者采纳

无法从毫秒时代 postgresql 中提取日期

【中文标题】无法从毫秒时代 postgresql 中提取日期【英文标题】:Can't extract date from milliseconds epoch postgresql 【发布时间】:2021-08-01 17:56:10 【问题描述】:

我正在查询数据库 (RedShift),我有一条以 epoch MS 格式存储的信息。设想如下表格:

Purchase, date
1, 1620140227019
2, 1620140227045
3, 1620140226573

我需要将时间戳转换为可读的日期,但我无法使其与 to_timestamp() 或 extract() 一起使用。问题首先在于值的大小(不支持 13 位)。 我最接近的解决方案是

select  to_timestamp(1620140226573/1000, 'SS')

但结果是0051-05-04 14:57:06。换句话说,月份、日期和秒是正确的,但年份是错误的。

【问题讨论】:

【参考方案1】:

您可以运行此查询

select to_timestamp(round(1620140227254/1000))

【讨论】:

它不工作。但是,我自己确实找到了解决方案: SELECT timestamp with time zone 'epoch' + 1620140227019/1000 * interval '1 second' AS convert_timestamp【参考方案2】:

解决方案在文档中:https://docs.aws.amazon.com/redshift/latest/dg/r_Dateparts_for_datetime_functions.html

SELECT timestamp with time zone 'epoch' + 1620140227019/1000 * interval '1 second' AS converted_timestamp

select '1970-01-01'::date + 1620140227019/1000 * interval '1 second'

【讨论】:

以上是关于postgresql 毫秒转日期的主要内容,如果未能解决你的问题,请参考以下文章

日期与毫秒互转(转)

Oracle SQL 两个日期类型毫秒值求差,日期转毫秒,时间差(ms)自定义函数解决毫秒差

Hive日期格式转换详解(包含13位时间戳转毫秒时间)

毫秒数 转 字符串日期

js 时间转换毫秒的四种方法(转)

PostgreSQ 连接问题 FATAL: no pg_hba.conf entry for host