SQL日期比较
答
这里是如何得到0小时今天在SQL
SELECT (CAST(FLOOR(CAST(GETDATE() as FLOAT)) AS DateTime))
只是比较你对那个时候。
不要使用varchar强制转换,因为它们很慢。
Check this list获取更多日期时间帮助。
答
尝试:
WHERE dtColumn < DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
答
试试这个:
where myColumn < cast((cast(getdate() - 0.5 as int)) as datetime)
答
你的意思是你吃用列的数据类型是“时间戳”,而不是datetime或smalldatetime?
如果是这样,那么你的运气不好。此数据类型无关,与日期或时间(这是真的误导......)这只是保证是按时间顺序唯一和顺序...但是没有办法OT它有日期时间
http://msdn.microsoft.com/en-us/library/aa260631(SQL.80).aspx
http://www.sqlteam.com/article/timestamps-vs-datetime-data-types比较
答
如果的ColumnName(列正在检查)是数据类型日期时间和NOT时间戳, 那么最快的方法是
Select Case DateDiff(day, columnName, getDate())
When 0 Then 'Today' Else 'Earlier' End
From TableName
假设所有日期v ColumnName中的线索现在或更早...
想起datediff的最简单方法是它计算指定类型的“限制”数量,您必须通过该限制来从一个日期时间传递到另一个日期时间...
如果今天是2008年11月21日,那么你的意思是包括2008-11-21 23:59或2008-11-21 00:00?到目前为止,大部分答案都假设后者。在这种情况下,您可以为这些结果添加一天。 – knightpfhor 2008-11-20 21:03:21
添加1天并减去4ms。 IIRC SQL将日期时间处理为毫秒的最接近的三分之一。所以2008-11-21 23:59:59.997会在2008-11-22 00:00:00.000“四舍五入”。它在我所维护的某些报告软件中引起了一些错误。 – StingyJack 2008-11-21 12:40:18