SQL добавить Datetime добавить час добавить минуту - PullRequest
4 голосов
/ 05 ноября 2011

В моей таблице есть столбец DateTime, Hour.

пример: 2012-05-14 00:00:00.000 и 1230

Как мне добавить этот столбец 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

но это не работает.

спасибо заранее, Стеф

1 Ответ

4 голосов
/ 05 ноября 2011

Из того, что я понимаю, вы хотите добавить первые две цифры как час, вторые две как минуту - но вы не делаете это при вызовах 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 (а не 0, как вы, вероятно, предполагаете)

...