Redshift - 问题在存储在表中的表中显示时差
Posted
技术标签:
【中文标题】Redshift - 问题在存储在表中的表中显示时差【英文标题】:Redshift - Issue displaying time difference in table stored in table 【发布时间】:2018-07-04 07:04:28 【问题描述】:我试图找出两个时间戳之间的时间差并将其存储在一个列中。当我检查表中的输出时,我看到该值是一个巨大的数字,而不是天/小时的差异。我使用 amazon redshift 作为数据库。
time_duration 列的数据类型:varchar
示例如下:
order_no,order_date,complain_date,time_duration
1001,2018-03-10 04:00:00,2018-03-11 07:00:00,97200000000
但我希望 time_duration 列显示 1 天 3 小时
当我将 time_duration 存储在表中然后查询以查看输出时会发生此问题。
谁能帮忙。
谢谢。
【问题讨论】:
time_duration
是什么类型?
@Mureinik,time_duration 也是 varchar 类型
【参考方案1】:
按照以下方式进行,它会产生时间差异
select datediff(hour,order_date,complain_date) as diff_in_hour from your_table ;
如果您想当天做,请按照以下方式进行
select datediff(day,order_date,complain_date) as diff_in_day from your_table;
您可以使用datediff
函数来更新您的表格列time_duration
。
详情请参阅Redshift
documentation。
【讨论】:
感谢您的回复。有什么办法可以显示 1 天 3 小时而不是 1 天或 27 小时.. 复杂,但你可以做到。select concat( concat(datediff(day,order_date,complain_date),concat(' days,', MOD(datediff(hour,order_date,complain_date),24))),'hrs') from table your_table;
以上是关于Redshift - 问题在存储在表中的表中显示时差的主要内容,如果未能解决你的问题,请参考以下文章