【问题标题】:SQL Date Format - Display the time difference as X days X hours X minsSQL 日期格式 - 将时差显示为 X 天 X 小时 X 分钟
【发布时间】:2020-10-09 18:25:26
【问题描述】:

我想以“X days X hours X mins'”(例如2 days 2 hours 3 mins)等格式显示两个时间戳之间的差异。

我现在能做的最好的事情是date_trunc('minutes',sysdate) - date_trunc('minutes',createdate::timestamp) as age,它给了我像1 day 06:05:00 这样的结果。然后我使用以下内容进行提取以获取每个部分。然后我可以连接它们..

extract(day from age) as days_age,
extract (hour from age) - 24 * extract(day from age) as hours_age,
extract (min from age) - 24 * 60 * days_age - 60 * hours_age,

有更好的方法吗?

谢谢!

【问题讨论】:

    标签: sql amazon-redshift date-format


    【解决方案1】:

    最好的解决方案是结合使用Redshift函数DATEDIFF。

    检索两个时间戳之间的天数示例:

    DATEDIFF('day', timestamp1, timestamp2)
    

    DATEDIFF 返回一个 BIGINT,因此根据预期结果,您可以将其转换为字符串以将其与“分钟”部分等连接起来,或者执行其他操作。

    例如获取

    2 天 2 小时 3 分钟

    DATEDIFF('day', timestamp1, timestamp2)::text | ' days ' | DATEDIFF('hour', timestamp1, timestamp2)::text | ' hours ' | DATEDIFF('minute', timestamp1, timestamp2)::text | ' minutes'
    

    https://docs.aws.amazon.com/redshift/latest/dg/r_DATEDIFF_function.html https://docs.aws.amazon.com/redshift/latest/dg/r_DATE_PART_function.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      相关资源
      最近更新 更多