2017-07-26 42 views
0

我想獲得一些幫助CAST SQL Statement 從下面的示例中,我只想修改2008年到2016年的年份。請記住,我需要完成CAST,而不是DATEADD如何在Sql中使用Cast語句修改年份

enter image description here

+1

所以,你想投的日期爲VARCHAR,然後用字符串函數,以取代2016年的一部分嗎?爲什麼你不能再使用日期函數? –

回答

1

DATEADD(年,8,DATE)將是解決辦法,但是,如果這是不是一種選擇,請利用以下選項之一。

我已經在那裏留下了DATEADD選項,以防它們畢竟可用。

DECLARE @d_date DATE = '2008-07-01' 
    DECLARE @v_date VARCHAR(25) = '2008-07-01' 


    SELECT @d_date, 
      @v_date, 
      DATEADD(YEAR, 8, @d_date), 
      DATEADD(YEAR, 8, CONVERT(DATE, @v_date)), 
      DATEADD(YEAR, 8, CAST(@v_date AS DATE)), 
      CAST(CAST(LEFT(@v_date, 4) AS NUMERIC) + 8 AS VARCHAR(4)) + RIGHT(@v_date, LEN(@v_date) - 4) 

請不要使用最後一個。

代碼示例。

http://rextester.com/NHHL75120