2012-10-01 5 views
1

nextUpdate может быть любым значением даты в прошлом. Я пытаюсь обновить поле nextUpdate до сегодняшней даты, но не изменяя время и добавив 8 часов.SQL Server: конвертировать на сегодня, а затем добавить 8 часов

я

ошибка преобразования строки в DATETIME

T-SQLe:

формат
UPDATE 
    business.dbo.db_schedule 
SET 
    nextUpdate = DATEADD(hh, 8, CONVERT(datetime, CONVERT(VARCHAR(8), GETDATE(), 111) + ' ' + CONVERT(VARCHAR(8), nextUpdate, 108), 111)) 
WHERE 
    sno = 8 

datetime в моем месте на 111

+0

Дата время SQL Server ** не имеет ** никакого формата - это всего лишь 8-байтовое числовое значение .... –

ответ

2
UPDATE business.dbo.db_schedule 
SET nextUpdate= DATEADD(hh, 8, 
       DATEADD(d, DATEDIFF(D,nextUpdate,Getdate()), 
          nextUpdate)) 
where sno=8 

 Смежные вопросы

  • Нет связанных вопросов^_^