将SQL Serverdate时间转换为较短的date格式

我在SQL Server中有一个datetime列,给我这样的数据10/27/2010 12:57:49 pm ,我想要查询此列,但只有SQL Server返回一天,一年和一年 – 例如。 2010 10 27或类似的东西。

我应该研究哪些function?

我应该试图转换为另一种date数据types? 或者简单地把它转换成一个string?

看看CONVERT 。 第三个参数是要转换为的date时间样式。

例如

 SELECT CONVERT(VARCHAR(10), GETDATE(), 103) -- dd/MM/yyyy format 

尝试这个:

print cast(getdate() as date )

如果您需要date格式的结果,您可以使用:

 Select Convert(DateTime, Convert(VarChar, GetDate(), 101)) 

除了CAST和CONVERT之外,如果您使用的是Sql Server 2008,则可以转换为datetypes(或使用该types开始),然后可以select再次转换为varchar:

 declare @myDate date set @myDate = getdate() print cast(@myDate as varchar(10)) 

输出:

 2012-01-17 

在SQL Server 2005中,我会使用这个:

 select replace(convert(char(10),getdate(),102),'.',' ') 

结果:2015年03月05日

mm / dd / yy的最短date格式可以通过以下方式获得:

 Select Convert(varchar(8),getdate(),1) 

对于任何版本的SQL Server: dateadd (dd, datediff (dd,0, getdate ()),0)

只需添加date关键字。 例如,selectdate(订单date),从orderdate>'2014-10-01'group by date(orderdate)的订单计数(1);

订单date在date时间。 此查询将显示该date的订单而不是date时间。

应用于date时间列的date关键字会将其更改为短date。