jueves, 1 de diciembre de 2011

14 Nuevas Funciones T-SQL en SQL Server 2012

Aplica a: SQL Server 2012.

SQL Server 2012 trae 14 nuevas funciones T-SQL y mejora otra existente..


Funciones de conversión.


Función TRY_CONVERT. Retorna un valor convertido a un tipo de datos especificado, si la conversión es exitosa. En caso contrario retorna null.









Función TRY_PARSE. Retorna el resultado de una expresión, convertida al tipo de datos solicitado, o nulo si la conversión falla.

Ejemplo:

SELECT CASE WHEN TRY_PARSE('Morillo' AS decimal) IS NULL
THEN 'True'
ELSE 'False'
END
AS Result

Resultado:

True

(1 row(s) affected)

Ejemplo:

SELECT TRY_PARSE('1234.5' AS decimal(5,1)) AS Result

Resultado:

Result
---------------------------------------
1234.5

(1 row(s) affected)


Función PARSE. Retorna el resultado de una expresión, convertida al tipo de datos solicitado. Sintaxis: PARSE (string_value AS data_type [USING culture])

Ejemplo:

SELECT PARSE('Monday, 13 december 2010' AS datetime2) AS Resultado

Resultado:

Resultado
----------------------
2010-12-13 00:00:00.00

(1 row(s) affected)


Funciones de Fecha y Tiempo.


Función EOMONTH. Esta función retorna el último día del mes correspondiente a la fecha pasada como parámetro.

Ejemplo:

SELECT EOMONTH('2/2/2011')

Resultado:

----------------------
2011-02-28 00:00:00.00

(1 row(s) affected)



Función TIMEFROMPARTS. Retorna un valor de tipo "time" para el tiempo pasado como parámetro, y con la precisión especificada. Sintaxis: TIMEFROMPARTS(hora, minutos, segundos, fracciones, precisión)

Ejemplo:

DECLARE @time time
SET @time = TIMEFROMPARTS(23, 59, 59, 0, 0)
SELECT @time

Resultado:


----------------
23:59:59.0000000

(1 row(s) affected)


Función SMALLDATETIMEFROMPARTS. Retorna un valor de tipo "smalldatetime" para la fecha y hora especificada. Sintaxis: SMALLDATETIMEFROMPARTS (año, mes, día, hora, minutos)

Ejemplo:

SELECT SMALLDATETIMEFROMPARTS(2011, 10, 24, 16, 35)

Resultado:


-----------------------
2011-10-24 16:35:00

(1 row(s) affected)



Función DATEFROMPARTS. Retorna un valor de tipo "date" para el año, mes y día especificados. Sintaxis: DATEFROMPARTS (año, mes, día)


Ejemplo:

SELECT DATEFROMPARTS(2011, 10, 24)

Resultado:


----------
2011-10-24

(1 row(s) affected)



Función DATETIMEFROMPARTS. Retorna un valor de tipo "datetime" para la fecha y hora especificadas. Sintaxis: DATETIMEFROMPARTS (año, mes, día, hora, minutos, segundos, milisegundos)

Ejemplo:

SELECT DATETIMEFROMPARTS (2011, 10, 24, 16, 45, 43, 22)

Resultado:


-----------------------
2011-10-24 16:45:43.023

(1 row(s) affected)



Función DATETIME2FROMPARTS. Retorna un valor de tipo "datetime2" para la fecha y hora especificadas, y con la precisión especificada. Sintaxis: DATETIME2FROMPARTS (año, mes, día, hora, minutos, segundos, fracciones, precisión)

Ejemplo:

SELECT DATETIME2FROMPARTS(2011, 10, 24, 16, 45, 43, 22, 3) -- 3=Milisegundos
-- 7=Nanosegundos

Resultado:


----------------------
2011-10-24 16:45:43.02

(1 row(s) affected)


Función DATETIMEOFFSETFROMPARTS. Retorna un valor de tipo "datetimeoffset" para la fecha y hora especificadas, y con la precisión especificada. Sintaxis: DATETIMEOFFSETFROMPARTS (año, mes, día, minutos, segundos, fracciones, hora_offset, minutos_offset, precisión).

Ejemplo:

SELECT DATETIMEOFFSETFROMPARTS(2011, 10, 24, 16, 45, 43, 0, 12, 0, 3)

Resultado:


----------------------------------
2011-10-24 16:45:43.000 +12:00

(1 row(s) affected)



Funciones Lógicas.


Función CHOOSE. Retorna el elemento de una lista de valores que se encuentra en el índice especificado. Sintaxis: CHOOSE (índice, val1, val2[, val_n]).

Ejemplo:

SELECT CHOOSE( 1, 2.30, 2.90, 4.10) as 'Discount Price'

Resultado:

Discount Price
---------------------------------------
2.30

(1 row(s) affected)



Función IIF. Retorna uno de dos valores, dependiendo de si la expresión booleana se evalúa como verdadero o como falso. Sintaxis: IIF (expresión booleana, valor verdadero, valor falso).

Ejemplo:

DECLARE @value1 int=1
DECLARE @value2 int=5
SELECT IIF(@value1 > @value2, 'True', 'False').

Resultado:


-----
False

(1 row(s) affected)


Funciones Matemáticas.


Función LOG. Retorna el logaritmo natural de la expresión flotante especificada. Sintaxis:
LOG (expresión flotante[, base]).

Por omisión retorna el logaritmo natural, con base e, donde e=2.718281828

Ejemplo:

SELECT LOG(10)

Resultado:

----------------------
2.30258509299405

(1 row(s) affected)

Ejemplo:

SELECT LOG(10,10)

Resultado:

----------------------
1

(1 row(s) affected)



Funciones de cadenas de caracteres.


Función CONCAT. Retorna una cadena de caracteres que es resultado de concatenar dos o más valores.

Ejemplos:

SELECT 'Alberto' + ', ' + 'Morillo'
SELECT CONCAT('Alberto', ' ', 'Morillo', ' ', 'Rodriguez')

Resultados:

----------------
Alberto, Morillo

(1 row(s) affected)


-------------------------
Alberto Morillo Rodriguez

(1 row(s) affected)



Función FORMAT. Retorna un valor formateado con el formato especificado y cultura, si se especifica. Sintaxis: FORMAT (valor, formato[, cultura]).

DECLARE @d DATETIME = '10/24/2011';
--SELECT FORMAT (@d, 'd', 'es-es') AS Result; -- Spanish - Spain
--SELECT FORMAT (@d, 'd', 'es-DO') AS Result; -- Spanish - Dominican Republic
--SELECT FORMAT (@d, 'd', 'af') AS Result; -- Afrikaans
SELECT FORMAT (@d, 'd', 'hy') AS Result; -- Armenian

Dónde se encuentra la lista de "culturas"?

http://msdn.microsoft.com/es-es/library/system.globalization.cultureinfo(VS.80).aspx

SELECT FORMAT(47.127, '0.00') as Price
SELECT FORMAT(47.127, '$0.00', 'es-DO') as Price

No hay comentarios:

Publicar un comentario