在c#中有个Date属性用于返回日期,其实就是当天0点。
DateTime dtNow = DateTime.Now;DateTime dtNow2 = dtNow.Date;Console.WriteLine("dtNow=" + dtNow);Console.WriteLine("dtNow2=" + dtNow2);
那么SQL Server中有没有这个呢?开始百度,发现这个真没有!
但是方法还是有的,基本上是这两种:
1)直接转成varchar。
2)把年月日取出来转varchar再拼接起来。
我一直使用第2种方法,写了个函数:
function [dbo].[GetDateOnly]( @d as datetime)returns smalldatetime ASbegin declare @OutputD smalldatetime; declare @y int=DATEPART(year, @d); declare @MH int=DATEPART(month, @d); declare @dy int=DATEPART(day, @d); declare @s varchar(50); set @s=convert(varchar(4),@y)+'-'+convert(varchar(2),@MH)+'-'+convert(varchar(2),@dy); set @OutputD=convert(smalldatetime,@s); return @OutputD;end
然而今天查看msdn官方文档,发现SQL Server中还有个date类型
这不就是想要的日期吗?