Выберите записи из SQL Server, если их больше 6 месяцев - PullRequest
2 голосов
/ 12 октября 2011

Я создаю приложение MVC, в котором мне нужно отправить электронное письмо всем тем записям, значение которых (DateUpdated) не обновлено в таблице Customer.

Моя таблица Customer выглядит следующим образом:

ID (PK)  
Name  
Address  
DateLastUpdated

Теперь у меня есть запрос MySql:

 SELECT * FROM users WHERE DateLastUpdated >= NOW() - INTERVAL 6 MONTH 

Как я напишу его в T-SQL ивыполнить эту задачу в MVC3?Пожалуйста, помогите!

Ответы [ 6 ]

7 голосов
/ 12 октября 2011

Ваш запрос должен быть:

SELECT * FROM users WHERE DateLastUpdated >= DateAdd(month, -6, getdate())

Кроме того, вы можете вырезать часть времени, чтобы у вас осталась только дата, например 2011-04-12 00:00:00.000, вы можете использовать это:

SELECT  *  
FROM    users  
WHERE   DateLastUpdated >= DateAdd(Month, -6, Cast(Floor(Cast(GetDate() as Float)) as DateTime))
1 голос
/ 12 октября 2011

Это больше похоже на дополнение. Если ваш DateLastUpdated имеет компоненты часов / минут / секунд / миллисекунд, вы можете найти некоторые записи, которые, как вы ожидаете, были опущены. Вы всегда можете сделать что-то вроде

SELECT * FROM users WHERE CONVERT(DATETIME, CONVERT(NVARCHAR(10), DateLastUpdated, 102), 102) >= DateAdd(month, -6, getdate())
1 голос
/ 12 октября 2011

Функция добавления даты может использоваться для сложения и вычитания даты

SELECT  *  FROM    users  WHERE   DateLastUpdated >= DateAdd(month, -6, getDate())

Более подробную информацию можно найти здесь :

0 голосов
/ 14 мая 2013
SELECT * FROM users WHERE DateLastUpdated >= DATE_SUB(now(), INTERVAL 6 MONTH)
0 голосов
/ 12 октября 2011
SELECT  *  FROM    users  
WHERE   DateLastUpdated >= dateadd(month, -6, datelastupdated)

Используйте функцию dateadd.

0 голосов
/ 12 октября 2011

Попробуйте:

SELECT * FROM users
WHERE DateLastUpdated >= DATEADD(Month, -6, GETDATE())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...