2016-03-11 5 views
0

Я должен использовать DATEADD в SQL.DATEADD в SQL, где второй параметр является результатом запроса

Я знаю, что синтаксис, например, DATEADD (SECOND, 10, GETUTCDATE()), но мне нужно, чтобы второй параметр настраивался. Другими словами, это 10 запросов к числу секунд. Это возможно? Заранее спасибо!

+1

Возможный дубликат [Передача столбца в качестве параметра dateadd в SQL Server] (http://stackoverflow.com/questions/34732183/pass-a-column-as-parameter-to-dateadd-in-sql-server) –

ответ

2

Да. Вы просто используете подзапрос. В этом контексте такой подзапрос называется скалярным подзапросом , что означает, что он может возвращать не более одной строки и ровно один столбец. Например:

select dateadd(second, 
       (select sum(seconds) from t where col = 'x'), 
       getutcdate() 
      ) 

В общем, такой запрос обычно может быть переписан без подзапроса. Однако подзапрос часто является прекрасным подходом.

+2

Другое возможное использование: 'select dateadd (second, tableOfSeconds.secondsToAdd, getutcdate()) from tableOfSeconds, где col = @ whatSeconds' –

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

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