0

在 SQL Server 2008 中,我想获取以下字符串格式的年份。参数将是以下字符串之一(DateTime.MinValue并且DateTime.MaxValue来自 C#):

“1/1/0001 12:00:00 AM”和“12/31/9999 11:59:59 PM”

这是我的预期答案:

0001 from 1st string.
9999 from 2nd string.
4

2 回答 2

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   ...
于 2013-05-02T04:04:21.603 回答
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

于 2013-05-02T04:20:52.000 回答