2011-11-10 27 views
1

嗨,我有串llike,如何將日期從字符串中分離出來?

我想在follwing方式單獨此字符串

「0.8在09年1月15日難熬的因素」,

1]日期01- 15-09 2]因子0.8

注:字符串長度不固定。

那麼我們怎樣才能以#1 &#2的形式分離數據呢?

回答

3

要獲取可以使用的日期PATINDEX()

declare @yourString varchar(100) 
set @yourString = 'on 01-15-09 with a factor of 0.8' 

select substring(@yourString, 
      patindex('%[0-9][0-9]-[0-9][0-9]-[0-9][0-9]%', @yourString), 
      8) 

要獲得 「XX的因素」,你可以這樣做:

select substring(@yourString, 
     patindex('%with a%', @yourString) + 7, 
     20) 
+1

@VikrantMore不,我知道的。你需要一個特定的模式來解決問題。日期很簡單,但找到「xx因素」是不可能的,除非你知道它之前的字符串。看看我在說什麼? – 2011-11-10 14:58:26

1
declare @txt varchar(max) 
set @txt = 'on 01-15-09 witha factor of 0.8' 

select cast(substring(@txt, patindex('% [0-9][1-9]-%', @txt), 9) as date) [date], 
cast(right(@txt, patindex('%_ %', reverse(@txt))) as decimal(9,1)) Factor 

結果:

date  Factor 
---------- ------ 
2009-01-15 0.8 
相關問題