2013-05-02 57 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

相關問題