Thursday, October 15, 2015

Extracting date value from string or sentence.

declare @Tab Table ( Col nvarchar(1000))
Insert into @Tab values ('1CC 3/4/13')
Insert into @Tab values ('04.25.14 (CC) SELF')
Insert into @Tab values ('3/13/14 1CC')
Insert into @Tab values ('COPY 9-28-12 ')
Insert into @Tab values ('11/8/13 1CC SON REQUESTING')
Insert into @Tab values ('4/20/12 1CC')
Insert into @Tab values ('1 COPY 4-12-13 SELF')
Insert into @Tab values ('1CC 2/4/00, 11/17/11 WIFE REQUESTING')
Insert into @Tab values ('COPY 7-11-14')
Insert into @Tab values ('5.29.12 1CC HUSBAND REQUESTING')
Insert into @Tab values ('7/14/14 1CC')
Insert into @Tab values ('CC1-6/28/13 11/12/13 1CC')

SELECT * FROM (

Select *, Case When Col like '%CC%' Then 'CC'
  When Col LIKE '%COPY%' Then 'COPY'
  Else NULL
  END   [Type],
CAST(
REPLACE(
REPLACE(
CASE
     WHEN PATINDEX('%[0-9][0-9][./-][0-9][0-9][./-][0-9]%', Col) > 0
     THEN SUBSTRING(Col, PATINDEX('%[0-9][0-9][./-][0-9][0-9][./-][0-9]%', Col), 8)

     WHEN PATINDEX('%[0-9][0-9][./-][0-9][./-][0-9]%', Col) > 0
     THEN SUBSTRING(Col, PATINDEX('%[0-9][0-9][./-][0-9][./-][0-9]%', Col), 7)

     WHEN PATINDEX('%[0-9][./-][0-9][0-9][./-][0-9]%', Col) > 0
     THEN SUBSTRING(Col, PATINDEX('%[0-9][./-][0-9][0-9][./-][0-9]%', Col), 7)

     WHEN PATINDEX('%[0-9][./-][0-9][./-][0-9]%', Col) > 0
     THEN SUBSTRING(Col, PATINDEX('%[0-9][./-][0-9][./-][0-9]%', Col), 6)
     ELSE NULL
   END
   , '.','/')
   , '-','/') as DATE ) as [DATE]
from @Tab ) X

No comments:

Post a Comment