[英]T-SQL how to get four digit year value using two digit year part
我有一個字符串值16 *******,我調用substring來獲取字符串文字的前兩位
SUBSTRING(@CourtCaseNumber,1,2)
然后,我需要一個函數,該函數將使用字符串參數(16),並向我返回四位數的年份值2016。其中一些將是99,因此,我需要的年份值是1999,98需要是1998, 15必須是2015等。
因此它應該看起來像這樣。 我找不到能為我做到這一點的功能。
NEEDEDFUNCTION(SUBSTRING(@CourCaseNumber,1,2)
您可以使用用case
:
SELECT ((CASE WHEN LEFT(@CourtCaseNumber, 2) >= '50' THEN '19' ELSE '20' END) +
LEFT(@CourtCaseNumber, 2)
) as yyyy
我將“ 50”作為合理的界限來區分不同的世紀。
編輯:
不要為此使用函數。 只需創建一個計算列:
alter table t
add yyyy as ((CASE WHEN LEFT(@CourtCaseNumber, 2) >= '50' THEN '19' ELSE '20' END) +
LEFT(@CourtCaseNumber, 2)
) ;
這樣,使用表的任何人都可以使用該值。
因此基於@Gordon Linoff的答案函數將如下所示:
create function dbo.your_name
(
@yearYY nvarchar(2)
)
RETURNS nvarchar(4)
as
begin
declare @yearYYYY nvarchar(4)
set @yearYYYY = (SELECT ((CASE WHEN @yearYY >= 50 THEN '19'
ELSE '20' END) + @yearYY
) as yyyy)
return @yearYYYY
end
測試:
select dbo.your_name ('70')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.