2011-04-27 34 views
1

通常我需要从GETDATE()中删除时间信息。我需要这个,因为我有一些日期时间字段,我知道我只存储日期信息,以便进行可靠的比较(MyDate < GETDATE())我需要从GETDATE()删除时间信息)。当然,我可以在MyDate中使用DATE数据类型,但这对新应用程序是可行的,而对于传统应用程序则不是这样。使用Date数据类型从GetDate()中删除时间信息是否正常?

我用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版本的酷酷!)

+0

目前还不清楚你需要什么。请用列描述表格并写下你想要改变的内容。 – Dalex 2011-04-27 08:50:50

+0

我只需要将今日日期作为参考,因为我在WHERE条件中使用它,例如'Where MyTable.Date> = @ Today'。如果我使用'where MyTable.Date> = GetDate()'我得不到正确的结果,因为GetDate也包含时间信息。 – LaBracca 2011-04-27 09:41:39

+0

MyTable.Date> = CAST(GetDate()as date)就足够了。 – Dalex 2011-04-27 10:07:52

回答

相关问题