当前位置: 首页 > 知识库问答 >
问题:

如何在postgresql中转换日期格式的unixtime戳记?

韩宜春
2023-03-14

我正在尝试将列unixtime数据转换为'YYYY-MM-DD'格式,但没有得到它。“我的列”的数据类型为数字。

我尝试了以下查询,但出现错误:

select to_timestamp(starttime,'YYYY-MM-DD') , count(*) from cdrs_052019 group by 1

查询执行失败

原因:SQL错误[42883]:错误:函数to_timestamp(数字,未知)不存在提示:没有函数匹配给定的名称和参数类型。可能需要添加显式类型转换。职位: 8

|starttime |endtime   |duration|duration_min|
|----------|----------|--------|------------|
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694960 |0       |            |
|155694960 |155694959 |1       |            |       

需要以下格式的结果:

starttime | count(*)

2019-05-01    56666
2019-05-02    77777
2019-05-03    69495
2019-05-04    4447

共有1个答案

顾正初
2023-03-14

好的,您可以通过::date将时间戳转换为日期类型,示例如下:

postgres=# select to_timestamp(1503504000);
      to_timestamp      
------------------------
 2017-08-24 00:00:00+08
(1 row)

postgres=# select to_timestamp(1503504000)::date;
 to_timestamp 
--------------
 2017-08-24
(1 row)

你想要的最后SQL:

select 
    to_timestamp(starttime)::date as the_date, 
    count(1) 
from 
    cdrs_052019 
group by 
    to_timestamp(starttime)::date 
order by 
    the_date
 类似资料:
  • 问题内容: 我有,我需要将其转换为应匹配此模式的类型对象-“ 2016-11-16T18:42:33.049Z”。我怎样才能做到这一点? 问题答案: Date d = new Date((long)timestamp*1000); 将创建一个实例。稍后显示它是另一回事。 我认为这就是您想要的: 测试:

  • 问题内容: 我有这样的日期格式:“ 2011年6月27日”,我想将其转换为20110627 可以用bash做吗? 问题答案: 有关日期的更多信息 请注意,这仅适用于GNU日期 我读过: 可以通过替换sunfreeware.com版本的日期来解决无法支持的Solaris版本的日期

  • 问题内容: 我正在尝试将日期从转换为(但是在SQL中不是); 但是我不知道date函数如何需要时间戳,并且我无法从该字符串获取时间戳。 这怎么可能? 问题答案: 使用和: (请参阅PHP网站上的strtotime和date文档。) 请注意,这是对原始问题的快速解决方案。为了进行更广泛的转换,您实际上应该使用该类来解析和格式化:-)

  • 在下面的示例中,我们正在尝试将“日期”从一种格式转换为其他格式,例如要转换为UTC格式,例如2021-07-26T18:37:15.490Z 有人能帮忙吗。 输入XML: 现有输出: XSLT代码: 参考URL:https://xsltfiddle.liberty-development.net/pNEj9dB/1

  • 在Java中获取计数后,如何将“时间戳”转换为? 我目前的代码如下: 这里我得到的输出是2012-08-07 0,但是等效查询返回3。为什么我得到0?

  • 我有一个这种格式的字符串。 我想将这个字符串日期转换为时间戳(毫秒)