【问题标题】:Change a character Time of Day to a date in Postgres? [closed]将字符时间更改为 Postgres 中的日期? [关闭]
【发布时间】:2016-10-06 17:08:08
【问题描述】:

我需要在 Redshift/Postgres 中从字符日期(例如下午 3:30 到 15:30:00)中提取一天中的时间。所以,我需要从下午 3:30 到 15:30 到 15 点。

有人指点吗?谢谢

【问题讨论】:

  • extract(hour from cast(timeedt as time)) 如前所述,我也尝试过转换。 SQL 弹出错误或: INFO: Function ""date_part"(text,time without time zone)" not supported。信息:不支持函数“时间”(文本)”。错误:Redshift 表不支持指定的类型或函数(每条 INFO 消息一个)。 SQL状态:0A000

标签: sql postgresql amazon-redshift


【解决方案1】:

将其转换为时间:

Select CAST('3:30 pm' as Time);

如果你只想要一个小时,那么

Select EXTRACT(HOUR FROM CAST('3:30 pm' as Time))

例子:

postgres=> Select EXTRACT(HOUR FROM CAST('3:30 pm' as Time));
 date_part
-----------
        15
(1 row)

【讨论】:

  • 这在我输入日期值时有效,但由于某种原因,对于我要提取的列信息,它并没有这样做。信息:不支持函数“时间”(文本)”。错误:Redshift 表不支持指定的类型或函数(每条 INFO 消息一个)。 SQL状态:0A000
  • 听起来 redshift 正在杀死查询,因为使用了其中一个函数。您可以在没有 EXTRACT 的情况下进行 CAST 并查看它是否可以通过?也许那时你可以把前两个字符去掉。
猜你喜欢
  • 2023-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 2017-04-08
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多