SQL Server pone a nuestra disposición multitud de funciones predefinidas que proporcionan un amplio abanico de posibilidades. Mostramos aqui algunas de las frecuentes. Podemos acceder al listado completo a través del siguiente enlace: http://technet.microsoft.com/es-es/library/ms187786.aspx
Cast y Convert
Convierten una expresión de un tipo de datos en otro de forma explícita. CAST y CONVERT proporcionan funciones similares.
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Donde:
-
data_type, es el tipo de destino al quequeremos convertir la expresion - expresion, la expresion que queremos convertir
- style, parametro opcional que especifica el formato que tiene expresion. Por ejemplo, si queremos convertir un varchar a datetime, aqui debemos especificar el formato de la fecha (el tipo varchar).
DECLARE @fecha varchar(20) -- Convertimos un valor varchar a datetime -- El 103 indica el formato en el que esta escrita la fecha -- 103 => dd/mm/aa SET @fecha = CONVERT(datetime, '19/03/2008',103) SELECT @fecha |
DECLARE @fecha datetime, @fechaFormateada varchar(20) -- Convertimos ahora una fecha a varchar y la formateamos -- 3 => dd/mm/aa SET @fecha = GETDATE() SET @fechaFormateada = CONVERT(varchar(20), @fecha, 3) SELECT @fechaFormateada |
-- Un ejemplo utilizando CAST DECLARE @dato varchar(2), @dato2 int SET @dato = '27' SET @dato2 = cast(@dato AS int) SELECT @dato2 |
A continuación mostramos la tabla de códigos de estilo (obtenida de MicroSoft).
Sin el siglo (aa) (1) | Con el siglo ?(aaaa) | Estándar | Entrada/salida (3) |
---|---|---|---|
- | 0 o 100 (1, 2) | Valor predeterminado | mes dd aaaa hh:mia.m. (o p. m.) |
1 | 101 | EE.UU. | mm/dd/aaaa |
2 | 102 | ANSI | aa.mm.dd |
3 | 103 | Británico/Francés | dd/mm/aa |
4 | 104 | Alemán | dd.mm.aa |
5 | 105 | Italiano | dd-mm-aa |
6 | 106 (1) | - | dd mes aa |
7 | 107 (1) | - | Mes dd, aa |
8 | 108 | - | hh:mi:ss |
- | 9 o 109 (1, 2) | Valor predeterminado + milisegundos | mes dd aaaa hh:mi:ss:mmma.m. (o p. m.) |
10 | 110 | EE.UU. | mm-dd-aa |
11 | 111 | JAPÓN | aa/mm/dd |
12 | 112 | ISO | aammdd |
- | 13 o 113 (1, 2) | Europeo predeterminado + milisegundos | dd mes aaaa hh:mi:ss:mmm(24h) |
14 | 114 | - | hh:mi:ss:mmm(24h) |
- | 20 o 120 (2) | ODBC canónico | aaaa-mm-dd hh:mi:ss(24h) |
- | 21 o 121 (2) | ODBC canónico (con milisegundos) | aaaa-mm-dd hh:mi:ss.mmm(24h) |
- | 126 (4) | ISO8601 | aaaa-mm-ddThh:mi:ss.mmm (sin espacios) |
127(6, 7) | ISO8601 con zona horaria Z. | aaaa-mm-ddThh:mi:ss.mmmZ (sin espacios) | |
- | 130 (1, 2) | Hijri (5) | dd mes aaaa hh:mi:ss:mmma.m. |
- | 131 (2) | Hijri (5) | dd/mm/aa hh:mi:ss:mmma.m. |
Isnull
Evalua una expresion de entrado y si esta es NULL, reemplaza NULL con el valor de reemplazo especificado. El valor de reemplazo debe ser del mismo tipo de datos que la expresion a evaluar.
ISNULL ( expression , replacement_value )
DECLARE @datoInt int, @datoVarchar varchar(100) SET @datoInt = NULL SET @datoVarchar = NULL SELECT ISNULL(@dato, -1), ISNULL(@datoVarchar, 'No hay dato') |
COALESCE
Devuelve la primera expresión distinta de NULL entre sus argumentos. Un aspecto a tener en cuenta es que todos los argumentos deben ser del mismo tipo.
COALESCE ( expression [ ,...n ] )
DECLARE @dato1 int, @dato2 int, @dato3 int, @dato4 int, @dato5 int SET @dato1 = null SET @dato2 = NULL SET @dato3 = NULL SET @dato4 = 100 SET @dato5 = 125 -- Devuelve 100 SELECT COALESCE(@dato1,@dato2,@dato3,@dato4,@dato5) |
GetDate y GetUTCDate
GetDate devuelve la fecha y hora actuales del sistema en el formato interno estándar de SQL Server 2005 para los valores datetime.
GetUTCDate devuelve el valor datetime que representa la hora UTC (hora universal coordinada u hora del meridiano de Greenwich) actual.
|
No hay comentarios:
Publicar un comentario