如何在Sql

时间:2017-07-26 21:05:59

标签: sql casting

我想获得一些CAST SQL语句的帮助 从下表中我只想修改2008年到2016年的年份。请记住,我需要使用CAST完成此操作,而不是DATEADD

enter image description here

1 个答案:

答案 0 :(得分:1)

DATEADD(YEAR,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