在SQL Server 2008中,我希望获得以下字符串格式的年份。参数将是以下字符串之一(来自C#的DateTime.MinValue
和DateTime.MaxValue
:
'1/1/0001 12:00:00 AM'和'12 / 31/9999 11:59:59 PM'
这是我的预期答案:
0001 from 1st string.
9999 from 2nd string.
答案 0 :(得分:1)
如果你知道输入字符串的格式是什么,你可以这样做:
SELECT ... SUBSTRING([Input], PATINDEX('%[0-9][0-9][0-9][0-9]%', [Input]), 4)
FROM ...
或者
SELECT ... SUBSTRING([Input], CHARINDEX('/', [Input], 4) + 1, 4)
FROM ...
答案 1 :(得分:0)
这可能是另一种做同样事情的方式。
declare @test nvarchar(50)
SET @test='1/1/9999 12:00:00 AM'
declare @testdate date
set @testdate=CONVERT(date,@test,101)
select DatePart(year,@testdate)
查看此sqlfiddle