【问题标题】:Converting time stored as INT to VARCHAR in Presto在 Presto 中将存储为 INT 的时间转换为 VARCHAR
【发布时间】:2020-07-24 12:05:39
【问题描述】:

我正在将数据从 Presto DB 提取到包含名为 scan_time 的字段的 SQL Server 表中,该字段以 INT 格式存储时间值。这些值显然不是固定长度,所以像1233 这样的东西实际上意味着00:12:33

将其转换为 VARCHAR 的最佳方法是什么,以使值 1223 输出为 00:12:33

【问题讨论】:

  • 你怎么知道 1133 是 00:11:33 或 01:01:33 或 11:00:33?
  • @TanveerBadar 如果它是您的任何替代示例,则会出现尾随零

标签: sql sql-server presto


【解决方案1】:

在 SQL Server 中,您可以使用以下方法转换为时间:

select convert(time, stuff(right(concat('0', scan_time), 4), 3, 0, ':'))

Here 是一个 dbfiddle。

【讨论】:

  • 感谢您的回复 - 这在 presto 中不起作用。也许我必须在 openquery 之外进行转换。
  • @Cam 。 . .您的问题很清楚,目标数据库是 SQL Server。如果您需要在 Presto 中执行此操作,您能否再问一个问题并说明清楚?
  • 根据您的回答,我决定在 SQL 端进行格式化,这就是我将您的回答标记为已接受的原因。谢谢
猜你喜欢
  • 2019-08-12
  • 2021-09-10
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 2017-11-15
相关资源
最近更新 更多