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中添加了
日期
数据类型。最好是使用带有时间部分的datetime00: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。