4

在我的表中,我有DateTime,Hour列。

示例: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

但它不起作用。

提前谢谢你,史蒂夫

4

1 回答 1

4

据我了解,您想将前两位数字添加为小时,后两位添加为分钟-但您没有在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添加小时,外部将分钟添加到添加小时的结果中。

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

于 2011-11-05T14:24:42.747 回答