我在SQL表persiandate专栏中,我想persiandate.persiandate的更新一年字符串这样'1396/12/07'
如何更新persiandate从'1396/12/07'
对2年默认'1398/12/07'
基地
尝试这个:
DECLARE @DataSource TABLE
(
[PersianDate] VARCHAR(12)
);
INSERT INTO @DataSource ([PersianDate])
VALUES ('1396/12/07');
UPDATE @DataSource
SET [PersianDate] = CAST(LEFT([PersianDate], 4) + 2 AS VARCHAR(4)) + RIGHT([PersianDate], 6);
SELECT [PersianDate]
FROM @DataSource;
对于SQL Server 2012+,你可以使用:
CONCAT(LEFT([PersianDate], 4) + 2, RIGHT([PersianDate], 6))
在这种代码可能帮助你
select cast (floor (( cast (substring ('1396/12/07' ,6,2)as int )
+isnull(monthCount,0))/12 ) + cast (left ('1396/12/07' ,4)as int ) as varchar(4) )
+'/'+
RIGHT('00' + cast (substring ('1396/12/07' ,6,2)as int ) ,2)
+'/'+
RIGHT('00' + CONVERT(VARCHAR,substring ('1396/12/07' ,9,2) ), 2)
你可以试试下面的查询。
SELECT CONVERT(VARCHAR(10),DATEADD(YEAR,2,CONVERT(DATE, '1396/12/07', 120)),111)
更新查询。
UPDATE TABLE1 SET persiandate_Col=CONVERT(VARCHAR(10),DATEADD(YEAR,2,CONVERT(DATE, persiandate_Col, 120)),111)