从 SQL 中的时间戳中提取时间
Posted
技术标签:
【中文标题】从 SQL 中的时间戳中提取时间【英文标题】:Extracting Time from Timestamp in SQL 【发布时间】:2017-11-02 07:07:53 【问题描述】:我正在使用 Redshift,并希望从时间戳中提取时间。
这是时间戳:2017-10-31 23:30:00
我只想把时间设为 23:30:00
这可能吗?
【问题讨论】:
【参考方案1】:在 Redshift 中,您可以简单地将值转换为 time
:
the_timestamp_column::time
或者你可以使用标准的cast()
operator:
cast(the_timestamp_column as time)
【讨论】:
测试为使用 select '2017-10-31 23:30:00'::timestamp::time;返回 23:30:00 我们可以在整个列上使用这种方法吗?当我尝试时,我收到以下错误消息:Function ""time"(timestamp without time zone)" not supported.
我必须指定时区吗?【参考方案2】:
请通过此链接
http://docs.aws.amazon.com/redshift/latest/dg/r_Dateparts_for_datetime_functions.html
时区、时区小时、时区分钟
由 DATE_TRUNC 函数和时间戳的 EXTRACT 支持 带时区 (TIMESTAMPTZ)
例子在这里
select extract(minute from timestamp '2009-09-09 12:08:43');
select extract(hours from timestamp '2009-09-09 12:08:43');
【讨论】:
这个答案不会使用“2017-10-31 23:30:00”作为输入返回 23:30:00 试试 select substring(convert(varchar(150),'2016-01-04 00:12:06'),12,8) 对,但是 - 请参阅上面的正确答案,它只是“::time”以上是关于从 SQL 中的时间戳中提取时间的主要内容,如果未能解决你的问题,请参考以下文章