SQL Server - Expresiones Regulares en SQL Server

 
Vista:
sin imagen de perfil

Expresiones Regulares en SQL Server

Publicado por letuario (2 intervenciones) el 18/04/2012 18:32:08
Necesitaría extraer una fecha de un campo de texto en una tabla de SQL SERVER.
El problema lógicamente es que la fecha a veces está al principio, a veces en medio y a veces al final, y nunca guarda este campo de ampliación de texto una estructura lóciga, por lo que entiendo que se hace necesaria la utilización de expresiones regulares, algo que no domino.
Os pido ayuda para ver si teneis algo hecho o me podeis echar un cable en este asunto.

EJ1: "Su fra nº 001/ 23423 de fecha 01/12/2011 Matias S.L"
EJ2: "Factura n1 5343 de Pedro Matias S.l. fecfra: 25/02/2012 LA CAIXA"

Objetivo. Extraer
1. 01/12/2011
2. 25/02/2012
Para luego calcular ratios de rotación de pago a proveedores.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Expresiones Regulares en SQL Server

Publicado por Isaias (4558 intervenciones) el 18/04/2012 23:34:36
Con la funcion CHARINDEX, localiza el caracter "/", restas 3 y tomas 9 posiciones, con la funcion ISDATE(), validas que sea fecha lo que has extraido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Expresiones Regulares en SQL Server. OK Solucionado

Publicado por letuario (2 intervenciones) el 19/04/2012 09:02:58
Isaias, perfecto!!!!,

Solo una anotación, hay que restar 2 no 3, pero no seré yo quien te corrija....me estaba volviendo loco con las expresiones y de esta forma ha sido muy sencillo. os dejo la consulta por si os sirve a alguien más.


siendo amplcon el nombre del campo de búsqueda
substring( amplcon,charindex('/',amplcon,0),-2,9)
luego en el select, condicionamos a que esta misma cadena sea = 1 con isdate

isdate (substring( amplcon,charindex('/',amplcon,0),-2,9))=1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Expresiones Regulares en SQL Server. OK Solucionado

Publicado por Isaias (4558 intervenciones) el 20/04/2012 21:39:46
Bueno, has solventado el duro camino de las funciones, felicidades.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar