SQL添加日期时间,增加小时和分钟

4
在我的表中,我有一个 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

不过它无法正常工作。

提前感谢您, Stev

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函数添加小时,外部的DATEADD函数将分钟添加到添加小时后的结果中。

另外,在SQL Server中,SUBSTRING函数是基于1的索引,例如,字符串的第一个字符在位置1(不是0,正如您似乎假设的那样)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接