2014-01-23 80 views
0

我的查詢還有就是下面的語句:如何將SQL Server 2008 R2中的3整數轉換爲日期格式?

declare @d int = day(getdate()) 
declare @m int = month(getdate()) 
declare @y int = year(getdate()) 
select @d,@m,@y 

所以我想@ d,@米,@ÿ轉換爲日期類型(格式),並把它作爲日期參數! 感謝

+0

你有更好的例子嗎?你爲什麼不使用'getdate()'?你爲什麼要把事情分開,改變數據類型呢?只是爲了它? –

回答

0

試試這個:

declare @d int = day(getdate()) 
declare @m int = month(getdate()) 
declare @y int = year(getdate()) 

DECLARE @myDate DATETIME 
SET @myDate = CAST (@y AS NVARCHAR(4))+'-'+CAST (@m AS NVARCHAR(2))+'-'+CAST (@d AS NVARCHAR(2)); 

select @myDate 

如果妳不投的價值,你會得到一些其他日期。

+0

不適用於所有人。如果你在你的代碼上面添加'set language british',那麼你會得到'nvarchar數據類型轉換爲日期時間數據類型導致超出範圍的值。' –

+0

非常感謝,這很有幫助;) – alisina

+0

我的榮幸:)不要忘記接受答案 –

0

這將做一個時尚便攜:

select DATEADD(year,@y - 2000,DATEADD(month,@m - 1, DATEADD(day,@d - 1, 
     '20000101'))) 

但是,如果你的動機只是爲了獲得當前的日期沒有任何時間部分,我只是做:

select DATEADD(day,DATEDIFF(day,0,GETDATE()),0) 

或甚至

select CONVERT(date,GETDATE()) 
相關問題