Sql server 仅在sql server中选择日期部分

Sql server 仅在sql server中选择日期部分,sql-server,date,datetime,sql-server-2005,Sql Server,Date,Datetime,Sql Server 2005,我试图获取日期列的日期部分来比较两个日期,但无法直接获取日期部分,我尝试了此Convert(date,getdate()),但这不适用于sql server 2005,因为我们正在使用它,当我尝试DATEADD(dd,0,DATEDIFF(dd,0,getdate())时它给出了2008-09-22 00:00:00.000其中我只想要没有时间的日期部分i-e 00, 从这两个职位: ihv所做的是convert(VARCHAR(10),'2014-04-21 00:00:00.000')并返

我试图获取日期列的日期部分来比较两个日期,但无法直接获取日期部分,我尝试了此
Convert(date,getdate())
,但这不适用于sql server 2005,因为我们正在使用它,当我尝试
DATEADD(dd,0,DATEDIFF(dd,0,getdate())时
它给出了
2008-09-22 00:00:00.000
其中我只想要没有时间的日期部分i-e 00, 从这两个职位:

ihv所做的是
convert(VARCHAR(10),'2014-04-21 00:00:00.000')
并返回
2014-04-21
,但它现在在
VARCHAR

是否有某种方法可以使我在SQLServer2005中仅以日期类型获取日期部分

提前谢谢

是否有某种方法可以让我只在日期输入中获取日期部分 SQLServer2005


否,SQL Server 2008中添加了
日期
数据类型。最好是使用带有时间部分的datetime
00:00:00

试试这个,它适用于SQL 2008

select Cast(getdate() as Date) as onlyDate

从datetime中删除时间的常用技巧是将其转换为float,并将int部分转换回datetime:

declare @d datetime;
set @d = getdate();
select cast(floor(cast(@d as float)) as datetime);

查看我的更新答案。它非常简单,尝试使用Cast而不是convert,检查我的ans。