如果你有看到这篇,http://www.cnblogs.com/insus/archive/2011/09/09/2172419.html ,会看到Insus.NET在SQL Server2008使用最简单的方法取到午夜时间值。
那你也许会问及,怎样获取当前系统日期的最大时间值,如yyyy-MM-dd 23:59:59.997。
我们可以使用DATEADD函数,来实现,以当前日期的午夜时间值加一天,即得到第二天的午夜时间值,然后再减去2秒,即可以获取当前系统日期的最大时间值。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
DECLARE
@Date
DATETIME
=
CURRENT_TIMESTAMP --当前系统日期时间
DECLARE @midnight DATETIME
SET @midnight = CAST ( CAST ( @Date AS DATE) AS DATETIME )
SELECT DATEADD (ms, - 2 , DATEADD ( day , 1 , @midnight )) -- 2011-09-09 23:59:59.997
DECLARE @midnight DATETIME
SET @midnight = CAST ( CAST ( @Date AS DATE) AS DATETIME )
SELECT DATEADD (ms, - 2 , DATEADD ( day , 1 , @midnight )) -- 2011-09-09 23:59:59.997