仅在sql server中选择日期部分

时间:2014-04-22 03:44:19

标签: 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我只想要没有时间的日期部分,即00, 从帖子中获取: How to return the date part only from a SQL Server datetime datatype

ihv完成的工作是convert(VARCHAR(10),'2014-04-21 00:00:00.000'),它返回2014-04-21,但它现在位于varchar

是否有一些方法可以让我只在sql server 2005中的日期类型中获取日期部分。

提前致谢。

3 个答案:

答案 0 :(得分:1)

  

是否有某种方式可以让我只在日期类型中获取日期部分   sql server 2005。

不,SQL Server 2008中添加了date数据类型。您可以做的最好的事情是使用时间部分为00:00:00的日期时间。

答案 1 :(得分:1)

试试这个,它适用于SQL 2008

select Cast(getdate() as Date) as onlyDate

答案 2 :(得分:0)

从datetime中删除时间的常用技巧是强制转换为float并获取int部分并将其强制转换回日期时间:

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