gpt4 book ai didi

apache-spark-sql - 从 spark sql 中的时间间隔中提取 HOUR

转载 作者:行者123 更新时间:2023-12-05 03:25:22 24 4
gpt4 key购买 nike

我想知道如何正确提取给定的 2 个时间戳对象之间的小时数。

例如,当执行以下 SQL 查询时:

    select x, extract(HOUR FROM x) as result
from
(select (TIMESTAMP'2021-01-22T05:00:00' - TIMESTAMP'2021-01-01T09:00:00') as x)

result 值为 20,而我希望它是 500

考虑到 x 值表示预期的返回值,这对我来说似乎很奇怪。

任何人都可以向我解释我做错了什么,并可能建议其他查询方式以便返回所需的结果吗?

提前致谢!

最佳答案

我认为你必须用这个做数学运算,因为 SparkSQL 中的 datediff 只支持天数。这对我有用:

SELECT (unix_timestamp(to_timestamp('2021-01-22T05:00:00') ) - unix_timestamp(to_timestamp('2021-01-01T09:00:00'))) / 60 / 60 diffInHours

我的结果(在 Synapse Notebook 中,而不是 Databricks,但我希望它是相同的):

enter image description here

unix_timestamp 函数将时间戳转换为 Unix 时间戳(以秒为单位),然后您可以对其应用日期数学。减去它们得到两个时间戳之间的秒数。两个日期之间的分钟数除以 60,两个日期之间的小时数再除以 60。

关于apache-spark-sql - 从 spark sql 中的时间间隔中提取 HOUR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72011956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com