在c#中有個Date屬性用於返回日期,其實就是當天0點。 DateTime dtNow = DateTime.Now; DateTime dtNow2 = dtNow.Date; Console.WriteLine("dtNow=" + dtNow); Console.WriteLine("dtNo... ...
在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種方法,寫了個函數:
Create function [dbo].[GetDateOnly] ( @d as datetime ) returns smalldatetime AS begin 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官方文檔https://msdn.microsoft.com/zh-cn/library/ms186724.aspx,發現SQL Server中還有個date類型
這不就是想要的日期嗎?
select convert(date,getdate()) select convert(date,'2016-11-5 12:20:45.567')