Skip to content

Instantly share code, notes, and snippets.

@javierguerrero
Created May 14, 2012 23:41
Show Gist options
  • Save javierguerrero/2698097 to your computer and use it in GitHub Desktop.
Save javierguerrero/2698097 to your computer and use it in GitHub Desktop.
Cómo extraer un número desde una cadena en SQL Server
CREATE FUNCTION dbo.EXTRACT_YEAR(@periodo AS VARCHAR(max))
RETURNS INT
AS
BEGIN
WHILE PATINDEX('%[^0-9]%', @periodo) > 0
BEGIN
SET @periodo = REPLACE(@periodo,SUBSTRING(@periodo,PATINDEX('%[^0-9]%', @periodo),1),'')
END
RETURN LEFT(@periodo, 4)
END
/*Cómo usar la función*/
SELECT dbo.EXTRACT_YEAR('Enero - Diciembre 1994')
/*
DECLARE @periodo varchar(30)
SET @periodo = '2008 - I'
WHILE PATINDEX('%[^0-9]%', @periodo) > 0
BEGIN
SET @periodo = REPLACE(@periodo,SUBSTRING(@periodo,PATINDEX('%[^0-9]%', @periodo),1),'')
END
select LEFT(@periodo, 4)
*/
@ebenito
Copy link

ebenito commented Mar 30, 2017

Muchas gracias, me fue muy útil.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment