首页 > 解决方案 > Redshift:将 HH:MM:SS 格式的字符串字段转换为秒和向后

问题描述

  1. 我一直在寻找一种HH:MM:SS在 Redshift 中将字符串字段从格式转换为秒的简单方法,因为该TIME_TO_SEC函数不存在。

    我有一个呼叫中心数据库,其中包含这种格式的字符串字段,HH:MM:SS. 例如,如果是,00:05:10那么我需要将其转换为310. 我自己想出了以下方法,但必须有更好的方法:

    (SPLIT_PART("HANDLE TIME", ':', 1) * 3600) + 
    (SPLIT_PART(SPLIT_PART("HANDLE TIME", ':', 2),':', 1) * 60) + 
     CAST(SPLIT_PART("HANDLE TIME", ':', 3) AS INT)
    
  2. 一旦我总结了秒数,我需要将秒数转换回HH:MM:SS格式。所以1249会变成字符串00:20:49。在 MYSQL 中如此简单,在 RedShift 中则不然。

任何帮助将不胜感激。

标签: sqlamazon-web-servicessplittype-conversionamazon-redshift

解决方案


不幸的是,我手头没有 Redshift,但您可以执行以下操作:

select datediff(second,
                timestamp('2000-01-01'),
                timestamp('2000-01-01 ' || handle_time)
               )

推荐阅读