【问题标题】:SQL add Datetime add hour add MinuteSQL 添加日期时间添加小时和分钟
【发布时间】:2011-11-05 14:20:22
【问题描述】:

在我的表中,我有 DateTimeHour 列。

示例:2012-05-14 00:00:00.0001230

如何将此hour 列添加到我的Datetime 列中,这样我就可以拥有

2012-05-14 12:30:00.000

我试过这个:

SELECT DATE_DEBUT, HEURE_DEBUT, 
   DATEADD(hour, CONVERT(int, SUBSTRING(HEURE_DEBUT, 0, 2)), DATE_DEBUT) AS DateTemp, 
   DATEADD(hour, CONVERT(int, SUBSTRING(HEURE_DEBUT, 2, 2)), DateTemp) AS DateComplete
FROM ESPTEMPS_PROGRAMMATION

但它不起作用。

提前谢谢你, 史蒂夫

【问题讨论】:

    标签: sql sql-server datetime add hour


    【解决方案1】:

    据我了解,您想将前两位数添加为小时,后两位添加为分钟-但您在 DATEADD 调用中没有这样做-您将两个部分都添加为HOUR-试试这个:

    SELECT DATE_DEBUT, HEURE_DEBUT, 
       DATEADD(MINUTE, CONVERT(int, SUBSTRING(HEURE_DEBUT, 3, 2)), 
                  DATEADD(HOUR, CONVERT(int, SUBSTRING(HEURE_DEBUT, 1, 2)), DATE_DEBUT))
    FROM ESPTEMPS_PROGRAMMATION
    

    这里我使用两个嵌套的DATEADD - 内部DATEADD 添加小时,外部将分钟添加到添加小时的结果中。

    另外:SQL Server 中的SUBSTRING基于1的,例如字符串的第一个字符位于位置 1(不是 0,正如您所假设的)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      相关资源
      最近更新 更多