Geo*_*ge2 0 sql t-sql sql-server stored-procedures sql-server-2008
我正在使用SQL Server 2008.我有一个表有一个名为CreateTime的日期时间类型列.我需要从这个表中选择CreateTime超过3天的所有记录,距离当前时间(UTC时间)半小时.我正在使用T-SQL存储过程.
BTW:CreateTime列是过去一段时间.
我花了很多时间来学习和搜索MSDN for DateDiff的帮助,但无法弄清楚.有人能给我看样品吗?
乔治,提前谢谢
您可以使用分钟选择并添加带有DATEDIFF的WHERE子句:
SELECT (fields)
FROM (table)
WHERE
DATEDIFF(MINUTE, CREATETIME, getutcdate()) <= (3*24*60 + 30)
Run Code Online (Sandbox Code Playgroud)
当然,如果你只是想那些行更多超过3天,30分钟的路程,只需使用相反:
WHERE
DATEDIFF(MINUTE, CREATETIME, getutcdate()) > (3*24*60 + 30)
Run Code Online (Sandbox Code Playgroud)
一个样品:
SELECT
DATEDIFF(MINUTE, '2009-08-01 08:00:00', getutcdate()),
DATEDIFF(MINUTE, '2009-07-31 20:00:00', getutcdate()),
DATEDIFF(MINUTE, '2009-07-23 20:00:00', getutcdate())
Run Code Online (Sandbox Code Playgroud)
给出结果:
96 816 12337
Run Code Online (Sandbox Code Playgroud)
所以前两个日期仍在你的4350分钟内(不到3天30分钟前),而第三个日期更远.
渣
| 归档时间: |
|
| 查看次数: |
2830 次 |
| 最近记录: |