SQL Server取datetime的日期部分

轉載來源:https://www.cnblogs.com/edong/archive/2016/11/18/6077922.html 

在c#中有個Date屬性用於返回日期,其實就是當天0點。

DateTime dtNow = DateTime.Now;
DateTime dtNow2 = dtNow.Date;
Console.WriteLine("dtNow=" + dtNow);
Console.WriteLine("dtNow2=" + dtNow2);

image

那麼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類型

 

image

這不就是想要的日期嗎?

selectconvert(date,getdate())
selectconvert(date,'2016-11-5 12:20:45.567')
image
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章