【问题标题】:Convert numeric column to time将数字列转换为时间
【发布时间】:2022-01-18 03:37:20
【问题描述】:

我有一张员工班次表,其中包括班次开始时间和班次结束时间。开始时间和结束时间列是数字,小时和分钟之间有句号:

 8.00
15.10
 7.00
22.00
 7.00

如何将这些列转换为时间?我还需要以小时和分钟为单位计算开始时间和结束时间之间的差异来计算轮班长度。

【问题讨论】:

  • 哪个 SQL 引擎?精确的数值类型是什么(例如十进制或浮点数)?
  • @KotaMori,我要说的是该列的类型不是数字,我们正在查看 varchar 或类似类型

标签: sql time


【解决方案1】:

Sql Server 中使用以下代码

declare @seconds numeric
set @seconds = 12366
select convert(char(8), dateadd(second, @seconds, ''), 114)

【讨论】:

    【解决方案2】:

    Sql Server 中使用以下代码

     SELECT CONVERT(DATETIME, CONVERT(CHAR(9), CURRENT_TIMESTAMP, 112) + '22:00');
    

    您可以将 CURRENT_TIMESTAMP 替换为您的日期

    例如:

     SELECT CONVERT(DATETIME, CONVERT(CHAR(9), CONVERT(DATE,'2022-01-25'), 112) + '22:00');
    

    【讨论】:

    • 对未指定 dbms 的问题的产品特定答案。至少告诉我们这是用于哪个 dbms。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2019-06-16
    • 2014-10-06
    相关资源
    最近更新 更多