如何从字符串中分隔日期?

时间:2011-11-10 14:46:28

标签: sql sql-server-2005 sql-server-2008

嗨我有字符串llike,

“09年1月15日,因子为0.8”

我想以下面的方式分离这个字符串,

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

注意:字符串长度不固定。

那么我们怎么能以#1& amp;的形式分离数据呢? #2?

2 个答案:

答案 0 :(得分: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 :(得分: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