Выберите минуты DATEADD с запросом SQL Server 2008 - PullRequest
5 голосов
/ 24 января 2012

Как я могу добавить минуты, используя dateadd() с результатом запроса?

Примерно так:

SELECT dateadd(minute, (SELECT 
                isnull(time1 - time2, 0)
                FROM table 
                WHERE field = 111) , getdate())

В этом случае результат выбора равен 288, но это не такt add

Мне нужно добавить это 288 в функцию

Как это:

SELECT dateadd(minute, 288, getdate())

Ответы [ 3 ]

9 голосов
/ 24 января 2012
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, time1, time2), GETDATE())
FROM table
WHERE field = 111

Это добавит разницу в минутах между временем1 и временем2 к текущей дате, если это то, чего вы хотите достичь.

4 голосов
/ 24 января 2012

Я думаю, что вы хотите, чтобы этот запрос:

SELECT DATEADD(minute, (ISNULL(time1 - time2, 0), GETDATE())
  FROM table 
 WHERE field = 111

Выше добавляет разницу между time1 и time2 ( при условии, что time1 и time2 являются некоторые целочисленные значения )к текущей дате для каждой записи в таблице, где field равно 111. Обратите внимание, однако, что это НЕ обновляет записи!

Если вы хотите обновить записи (т.е.измените таблицу в противоположность запросу), тогда вам нужно использовать UPDATE:

UPDATE table
   SET someField = dateadd(minute, (isnull(time1 - time2, 0), getdate())
 WHERE field = 111

Надеюсь, в этом есть какой-то смысл.Из твоего вопроса было не очень понятно, что ты пытался сделать.

0 голосов
/ 25 января 2012

Если ваши типы данных не верны, это может сработать для вас:

SELECT dateadd(minute, (SELECT  
            CAST(isnull(time1 - time2, 0) AS INT)
            FROM table  
            WHERE field = 111) , getdate()) 

Я все равно рекомендую вам взглянуть на некоторые другие ответы для лучшей структуры - например, код Miky Dinescusвыше будет:

SELECT DATEADD(minute, (CAST(ISNULL(time1 - time2, 0), GETDATE()) AS INT)
  FROM table    
 WHERE field = 111 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...