Vous êtes sur la page 1sur 4

Funciones de SQL Predefinidas

SQL proporciona diversas funciones predefinidas a las que se puede llamar desde una orden sql. Estas funciones estan divididas
en diferentes categorías:
Funciones de tipo Cadena
Función Descripción
ASCII (string) Devuelve el valor de código ASCII del carácter situado más a la izquierda de una
expresión de cadena. Retorna entero
CHAR (int) Convierte un código Int32 en una cadena
ASCII. Retorna string
CHARINDEX (exp1, exp2, Devuelve la posición inicial de la expresión especificada en una cadena de
[ubicacion]) caracteres
LEFT (expresion, Devuelve la parte izquierda de una cadena de caracteres con el numero de
cantidad) caracteres especificado
LEN (expresion) Devuelve el numero de caracteres de la cadena especificados, excluidos los
espacios en blanco finales
LOWER (expresion) Devuelve la expresion de String convertido a minusculas
LTRIM (expresion) Devuelve una expresion String tras quitar los espacios iniciales en blanco
PATINDEX (patron, Devuelve la posicion inicial de la primera aparicion de un patron en una expresion
expresion) String especificada
REPLACE (exp1, exp2, Repite una expresion de carácter un numero especificado de veces
exp3)
REPLICATE Repite una expresion de carácter un numero especificado de veces
(char_expres, int)
REVERSE (expresion) Devuelve un valor string con las posiciones de los caracteres invertidos con
repecto a la cadena de entrada
RIGHT (char_exp, Devuelve la parte derecha de una cadena de caracteres con el numero de caracteres
cantidad) especificados
RTRIM (expresion) Devuelve un valor String despues de quitar los espacios finales
SPACE (int) Devuelve una cadena de espacios repetidos
STR(exp_float, Devuelve un valor String convertido a partir de datos numericos
[longitud,[dec]])
SUBSTRING(expre, Devuelve parte de una expresion String
inicio, longitud)
UPPER(expresion) Devuelve una expresion String convertida a mayusculas

Funciones de Carácter:

ASCII: Retorna el número que representa un carácter en el conjunto de caracteres de la base de datos.
ASCII('A') --> 65
ASCII('ABC') --> 65.

CHAR: Función que es la inversa de ASCII. Esto retorna un carácter correspondiente del numero que a sido pasado como parametro.
chr('65') --> 'A'
SELECT 'letra : ' +char(65 )+' sale con char(65)' 'El salto de

CONCAT: Concatena dos cadenas pasadas como parametros.

select 'abc' +'def'+'hij' --> 'abcdefhij'

CHARINDEX: Busca el carácter de una cadena para encontrar una ocurrencia dentro de una seguna cadena. Retorna la posición del primer
carácter de la seguna cadena. Si
esto no es encontrado entonces devuelve 0.
CHARINDEX ('UP','SQLSER UPDATE') --> 8
CHARINDEX ('X','SQLSERVER UPDATE') --> 0
En adición el INSTR tiene un parametros opcionales que son: la posición. El defecto para ambos es 1, es decir inicia del primer
carácter y busca para la primer ocurrencia.

LEN : Retorna la longitud de la cadena especificada, en caracteres. Esto siempre retorna un numero positivo o NULL y nunca cero.
select LEN ('') --> NULL
select LEN (''SQLSER UPDATE') --> 13

LOWER: Permite convertir todos los carateres alfabeticos en una cadena de minusculas.
select lower(' SQLSERVER UPDATE') --> 'oracle update'
select lower(' SQLSERVER UPDATE 27') --> 'oracle update 27'
El antónimo de LOWER es el UPPER.

Condiciones en las cadenas


select ' SQLSERVER UPDATE' = 'SqlServer Update' --> FALSE
select lower('SQLSERVER UPDATE') = lower('SqlServer Update') --> TRUE

SPACE: genera una determinada cantidad de espacios en blanco .


select Space(20) +'SQLSERVER UPDATE'
LTRIM : LTRIM Esto es comúnmente usado para remover espacios, de la izquierda .

select ltrim(' SQLSERVER UPDATE') --> 'SQLSERVER'

RTRIM: RTRIM. Esto es comúnmente usado para remover espacios de la derecha .


select rtrim('SQLSERVER ') --> 'SQLSERVER'

REPLICATE: . replica un numero de veces la cadena pasada como parametro .


select replicate('SQL',3) --> 'SQLSQLSQL'
select replicate('S',5) --> 'SSSSS'

LEFT: extrae una cantidad determinada de caracteres empezando por la izquierda.


select left(ename+ REPLICATE('*', 50),50 ) from emp where deptno=10

CLARK*********************************************
KING**********************************************
MILLER********************************************
ALBERTO*******************************************
RIGHT: extrae una cantidad determinada de caracteres empezando por la derecha.
select right( REPLICATE('*', 50)+ename,50 ) from emp where deptno=10

*********************************************CLARK
**********************************************KING
********************************************MILLER
*******************************************ALBERTO

UPPER: Permite convertir todos los carateres alfabeticos en una cadena de mayusculas.
upper('sql update') --> 'SQL UPDATE'
upper('sql update 27') --> 'SQL UPDATE 27'
Funciones de tipo Fecha
Función Descripción
DATEADD (datepart, Devuelve un valor DateTime nuevo que resulta de sumar un intervalo a la fecha especificada.
numero, date)
Argumentos datepart: tipo String que representa qué parte de la fecha se devuelve como el
valor nuevo. numero: tipo Int32, Int64 que incrementa el valor de datepart.
date: expresión que devuelve un valor de tipo
DateTime, DateTimeOffset o Time con precisión =[0-7]
DATEDIFF (datepart, Devuelve el número de límites de fecha y hora entre dos fechas especificadas. Argumentos
fechainicio,
datepart: String que representa la parte de la fecha para calcular la diferencia.
fechatermino)
fechainicio: la fecha de comienzo para el cálculo es una expresión que devuelve un valor de
tipo DateTime, DateTimeOffset o Time fechatermino: : la fecha de fin para el cálculo es una
expresión que devuelve un valor de tipo
DateTime, DateTimeOffset o Time
Valor devuelto
Valor de tipo Int32.
DATENAME (datepart, date) Devuelve una cadena de caracteres que representa el datepart especificado de la fecha
especificada. Argumentos datepart: valor de tipo String que representa qué parte de la fecha
se devuelve como el valor nuevo.
date: expresión que devuelve un valor de tipo
DateTime,DateTimeOffset o Time
Valor devuelto
La cadena de caracteres que representa el datepart especificado de la fecha especificada.
DATEPART (datepart, date) Devuelve un número entero que representa el datepart especificado de la fecha dada.
Argumentos datepart: valor de tipo String que representa qué parte de la fecha se devuelve
como el valor nuevo.
date: expresión que devuelve un valor de tipo
DateTime,DateTimeOffset, o Time
Valor devuelto
El datepart especificado de la fecha especificada como un valor de tipo Int32.
GETDATE() Genera la fecha y hora actuales en el formato interno de SQL Server para los valores
datetime.
Valor devuelto
La fecha y hora actuales del sistema como
DateTime con una precisión de 3.
SYSDATETIME() Devuelve un valor DateTime con una precisión de
7.
Valor devuelto
Valor DateTime con una precisión de 7.

Funciones de Fecha:
Las funciones de fecha admiten argumento de tipo DATE. PL/SQL provee ocho funciones para la manipulación de fechas.

fecha del sistema : Devuelve la fecha ACTUAL.

select CONVERT (date, GETDATE()) -- fecha del sistema

YEAR,MONTH,DAY: devuelve parte de la fecha anio,mes,dia en entero.


select YEAR(getdate()) anio, MONTH (getdate()) mes, DAY(getdate()) day

DATEPART: Devuelve parte de la fecha año,mes,dia,hora,minutos y segundos.


select datepart(HOUR,getdate()), datepart(MINUTE,getdate()),datepart(second,getdate()),
datepart(year, getdate()),datepart(month, getdate()), datepart(day, getdate())

DATENAME: Devuelve parte de la fecha año,mes,dia,hora,minutos y segundos. PERO como cadenas:


select datename(HOUR,getdate()), datename(MINUTE,getdate()),datename(second,getdate()),
datename(year, getdate()),datename(month, getdate()), datename(day, getdate())

DATEADD: adicionar días, meses,anio,horas,minutos,segundos.


select getdate()+24 --sumar dias
select dateadd(day,18,getdate()) --adicionar dias
select dateadd(month,1,getdate()) --adicionar meses
select dateadd(year,1,getdate()) --adicionar años
select dateadd(hour,-1,getdate()) --adicionar restar horas
select dateadd(second,100,getdate()) --adicionar segundos

DATEDIFF: Diferencias entre fechas en dias,meses,años…

SELECT DATEDIFF(day, convert(datetime, '2005-12-31 23:59:59') ,


convert(datetime,'2006-01-01 00:00:00'))
SELECT DATEDIFF(month,'2005-10-31 23:59:59' , '2006-01-01 00:00:00')
SELECT DATEDIFF(month,getdate(),getdate()+1000)

Algunas Funciones Númericas:

ABS(X) Retorna el valor absoluto.


CEILING(X) Retorna el menor entero que sea mayor o igual que X.
EXP(n) Devuelve e elevado a la potencia x, donde e= 2.71828183.
FLOOR(X) Devuelve el mayor entero igual o menor que X.
LOG (x,y) Retorna el logaritmo natural de X..
(x % y) Retorna el resto resultante de dividir X por Y.
POWER (x,y) Retorna el numero X elevado a la potencia de Y.
ROUND (x,y) Retorna X redondeado a Y posiciones a la derecha del punto decimal.
SIGN (x) Retorna 1 if X es positivo, 0 si X es 0, y –1 si X es mayor que 0.
SQRT Retorna la raiz cuadrada.
ROUND (x,y,1) Retorna X truncado para Y posiciones decimales. El ultimo parámetro 1 (truncar)
ROUND (x,y,0) Retorna X redondeado para Y posiciones decimales.
ROUND (x,y) Cuando no se pasa el ultimo parámetro entonces se redondea por default el ultimo
parámetro es 0 (redondear)

Funciones de Conversión:

Las funciones de conversión se utilizan para realizar conversiones entre tipo de datos.

Conversión de String a Fechas:


select convert(date ,'13-JUN-2000') --> 2000-06-13
select convert(date ,'2000-06-13') -->2000-06-13
select convert(date ,'2000/06/13') -->2000-06-13
select convert(datetime, '2005-12-31 23:59:59') --2005-12-31 23:59:59
select convert(datetime, '2005-12-31 00:00:00') --2005-12-31 00:00:00.000
select convert(datetime, '2005-12-31') --2005-12-31 00:00:00.000

Conversión de Numeros y fechas a String:


select convert(varchar,678.10) --> 678.10
select convert(varchar,convert(decimal(15,3),678.10) ) --> 678.100

--- TOMANDO EN CUENTA QUE HOY ES 25/10/2011


select convert(varchar, GETDATE()) --> Oct 25 2011 10:44AM
select CONVERT(VARCHAR , getdate() , 112), --> 20111025
select CONVERT(VARCHAR, getdate() , 103) --> 25/10/2011

Conversión de String a Numero:


select convert(decimal(5,1) ,'678.550') --> 678.6 -->redondea

Miscelánea de Funciones:

isnull: Acepta dos paramentros si el valor del primer parametro es NULL, entonces el valor del segundo parametro.

isnull (myvar,99) --> 99


isnull (myvar,'John') --> John
isnull (myvar,’21-JUN-2000') --> 21-JUN-2000'

Vous aimerez peut-être aussi