2013-05-08 54 views
1

我需要爲當前日期添加1天,並以yyyymmdd格式輸出。 代碼需要寫入sql服務器上的存儲過程。如何在當前日期添加1天,並在SQL Server中導致格式爲yyyymmdd?

目前我的代碼如下:

DECLARE @dat DATE 

    select @dat = dateadd(DD, 1, getdate()) 
    SELECT @dat =LEFT(CONVERT(VARCHAR(8), @dat, 112),10) 

然而,這似乎是即時通訊做錯了什麼是我在SQL表輸出格式爲YYYY-MM-DD。我需要擺脫連字符。

有什麼建議傢伙?提前致謝。

+3

爲什麼你關心的破折號?你正在返回* date *,而不是* string *。擔心在客戶端上格式化。現在您對管理工作室如何向您呈現日期感到不安。另外,請停止使用懶惰速記。爲什麼'DD'比'DAY'好? – 2013-05-08 14:02:28

+3

你想要一個字符串或日期作爲Proc的輸出嗎?如果你需要一個日期,那麼格式是不相關的,如果你需要一個字符串,那麼把@dat的聲明改爲一個字符串。 – 2013-05-08 14:04:13

+0

感謝您的擁抱。想要一個字符串作爲輸出。 – Kasanova 2013-05-08 14:05:35

回答

0
select @dat = dateadd(DD, 1, getdate()) 
DECLARE @datCus varchar(8) 
select @datCus=LEFT(CONVERT(VARCHAR(8), @dat, 112),10) 

的問題是,我分配到@dat insert語句值。然而,有一個varchar變量來處理轉換部分解決了這個問題(在這種情況下@datCus)。

1

變化@dat聲明爲一個字符串

3

的問題是,你正在分配回一個Date對象。您需要將其分配給varchar。

我沒有在SQL Server 2005中的以下內容:

DECLARE @dat DATETIME 
DECLARE @string varchar(8) 
SET @dat = GetUtcDate() 

    select @dat = dateadd(DD, 1, getdate()) 

    SELECT @string =CONVERT(VARCHAR(8), @dat, 112) 
PRINT @string 
0

嘗試這一個 -

DECLARE @date VARCHAR(8) 
SELECT @date = CONVERT(VARCHAR(8), DATEADD(DAY, 1, GETDATE()), 112) 

SELECT @date 
相關問題