amazon-web-services - 将秒数格式化为 Redshift 中的间隔 HH:MM:SS
问题描述
我正在处理在我的数据管道中以绝对秒数表示的时间量。做类似的事情是相当微不足道的
select 42602 * interval '1 second';
返回11:50:02
正确的答案。
但是,当我对实际数据运行相同的逻辑时
select on_call,
on_call::int * interval '1 second'
from dev_isaac.agency_time_report
order by agent_name, day_of;
为什么 redshift 处理这个问题的方式有所不同,是否有一个很好的方法来解决这个问题,而无需手动计算每一块。
解决方案
有点令人费解......但这可能适用于 HH:MM 转换:
(DATEDIFF(second,'2011-12-31 8:30:00','2011-12-31 20:30:15')/(60*60))::VARCHAR || ':' || MOD(DATEDIFF(second,'2011-12-31 8:30:00','2011-12-31 20:30:15'),(60*60))
这是我们找到的解决方案:
LTRIM(DATEADD(seconds,DATEDIFF(seconds,order_create,placed_time),'1900-01-01 00:00:00'),'1900-01-01')::time
推荐阅读
- java - 我无法运行我的黄瓜 jvm 报告
- unity3d - 长按和随机时间值
- authentication - 一个 ASP.NET Core 2.2 控制器中的多种身份验证方法
- reactjs - 错误:“在“@ckeditor/ckeditor5-build-classic”中找不到导出“默认”(导入为“ClassicEditor”)
- reactjs - componentDidMount 生命周期方法中子组件抛出的错误未在错误边界中捕获
- angular - 从ngx-chips(标签输入)中选择项目时Angular2 +打开模态
- php - 如何使用 php 中的 NATS API 使用用户名或电子邮件登录?
- spring - Spring Boot ManyToMany - StackOverflow - JPA,Hibernate
- c# - 用于 CSS 隔离的 Blazor 组件中间的链接标记
- java - 在 localhost 上找不到或禁止 404