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

详情请参阅Redshiftdocumentation。

【讨论】:

感谢您的回复。有什么办法可以显示 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 - 问题在存储在表中的表中显示时差的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql以存储在表中的类型返回变量

根据 Redshift 中其他表的条目在表中插入值

从 Redshift 中的表中获取缺失的日期

SQL Server - 从其他表中排除记录

闪亮:renderPrint() 根据 input$id_cell_clicked 显示存储在表中的附加信息

我的 pdo 结果在表中重复