通常我需要从GETDATE()
中删除时间信息。我需要这个,因为我有一些DateTime字段,我知道我只存储日期信息,以便进行可靠的比较(MyDate < GETDATE()
)我需要从GETDATE()
中删除时间信息。当然,我可以使用DATE
中的MyDate
数据类型,但这适用于新应用程序,而不适用于旧应用程序。
我过去常常使用CAST
,但是在SQL Server 2008中还有DATE
数据类型,它似乎更具可读性。
旧方法
DECLARE @Today DateTime
SET @Today = (CAST(FLOOR(CAST( GETDATE() AS FLOAT)) AS DATETIME))
select @Today
新方法
DECLARE @TodayDate Date
Set @TodayDate = GETDATE()
select @TodayDate
我可以选择第二个,还是有任何警告? (我只使用2008年的腐败!)