2013-05-02 50 views
0

在SQL Server 2008中,我想要得到以下字符串格式的年份。参数将是以下字符串之一(DateTime.MinValueDateTime.MaxValue从C#):在SQL Server中获取特定字符串

'1/1/0001 12:00:00 AM' 和'12 /9999分之31下午11点59分59秒”

这是我预期的答案:

0001 from 1st string. 
9999 from 2nd string. 
+0

尝试DATE_FORMAT功能 – Satya 2013-05-02 04:03:24

回答

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 ... 
+0

雅。这行得通。谢谢。 – v3v 2013-05-02 04:16:52

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

+0

ya。你的脚本也可以工作,谢谢。 – v3v 2013-05-02 06:17:17