我正在创建一个MVC应用程序,我需要向DateUpdated
表中未更新其值(Customer
)的所有记录发送电子邮件。
我的Customer
表格如下:
ID (PK)
Name
Address
DateLastUpdated
现在我有了这个MySql查询:
SELECT * FROM users WHERE DateLastUpdated >= NOW() - INTERVAL 6 MONTH
我将如何在T-SQL中编写它并在MVC3中执行此任务?请帮忙!
答案 0 :(得分:7)
您的查询应该是:
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 :(得分:1)
日期添加功能可用于添加和减去日期
SELECT * FROM users WHERE DateLastUpdated >= DateAdd(month, -6, getDate())
您可以找到更多信息here:
答案 2 :(得分:1)
这更像是一个补充。如果您的DateLastUpdated具有小时/分钟/秒/毫秒组件,您可能会发现一些您希望被遗漏的记录。你可以随时做点什么
SELECT * FROM users WHERE CONVERT(DATETIME, CONVERT(NVARCHAR(10), DateLastUpdated, 102), 102) >= DateAdd(month, -6, getdate())
答案 3 :(得分:0)
尝试:
SELECT * FROM users
WHERE DateLastUpdated >= DATEADD(Month, -6, GETDATE())
答案 4 :(得分:0)
SELECT * FROM users
WHERE DateLastUpdated >= dateadd(month, -6, datelastupdated)
使用dateadd功能。
答案 5 :(得分:0)
SELECT * FROM users WHERE DateLastUpdated >= DATE_SUB(now(), INTERVAL 6 MONTH)