从 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 中的时间戳中提取时间的主要内容,如果未能解决你的问题,请参考以下文章

我正在使用 Oracle SQL Developer 并希望从时间戳中提取星期几。我的语法是不是正确?

从时间戳中提取时间?

无法从 BigQuery 中的时间戳中提取日期

如何从java中的unix时间戳中提取时间? [复制]

如何从Django中的时间戳中仅提取一天

如何从java中的字符串时间戳中提取日期和时间