Vous êtes sur la page 1sur 6

1.

Funciones de Fechas SQL


1.1.

Fechas SQL

Nota: La parte ms difcil de trabajar con fechas es asegurarse de


que el formato de la fecha que estamos intentando insertar coincida
con el formato de fecha de la columna en la base de datos.
Siempre y cuando tus datos contengan slo la porcin de la fecha, tus
consultas funcionarn perfectamente. Sin embargo, si una porcin se
compromete, se pone complicado.
Pero antes de hablar acerca de las complicaciones de las consultas de
fechas, veremos las funciones ms importantes para trabajar con
fechas.
1.2.

Funciones de Fecha con MySQL

La siguiente tabla lista las funciones ms importantes que podemos


utilizar en MySQL:
FUNCIN
NOW()
CURDATE()
CURTIME()
DATE()
EXTRACT()
DATE_ADD()
DATE_SUB()
DATEDIFF()
DATE_FORMAT(
)
1.3.

DESCRIPCIN
Retorna la fecha y hora actual.
Retorna la fecha actual.
Retorna la hora actual.
Extrae la parte de una fecha o de una expresin
de hora.
Retorna slo una parte de una fecha / hora.
Aade un intervalo de tiempo a una fecha.
Resta un intervalo de fecha a una fecha.
Retorna el nmero de das entre dos fechas.
Muestra la fecha / hora en diferentes formatos.

Funciones de Fecha con SQL Server

La siguiente tabla lista las funciones ms importantes que podemos


utilizar en SQL Server:
FUNCIN
GETDATE()
DATEPART()
DATEADD()
DATEDIFF()
CONVERT()
1.4.

DESCRIPCIN
Retorna la fecha y hora actual.
Retorna la parte de una fecha / hora.
Aade o resta un intervalo de tiempo a una fecha.
Retorna el tiempo que hay entre dos fechas.
Muestra una fecha / hora en diferentes formatos.

Tipos de Datos de Fecha SQL

MySQL viene con los siguientes tipos de datos para almacenar fechas
o fecha / hora en la base de datos:

DATE formato: AAAA-MM-DD


DATETIME formato: AAAA-MM-DD HH:MI:SS
TIMESTAMP formato: AAAA-MM-DD HH:MI:SS
YEAR formato: AAAA AA

SQL Server viene con los siguientes tipos de datos para almacenar
fechas o fecha / hora en la base de datos:

DATE formato: AAAA-MM-DD


DATETIME formato: AAAA-MM-DD HH:MI:SS
SMALLDATETIME formato: AAAA-MM-DD HH:MI:SS
TIMESTAMP formato: un nmero nico

AA AAAA: ao
MM: mes
DD: da
HH: hora
MI: minutos
SS: segundos

Nota: Los tipos de datos que se van a almacenar se seleccionan al


momento de crear una tabla en la base de datos.
1.5.

Trabajando con Fechas SQL

Nota: Podemos comparar dos fechas


componentes de hora involucrados.

fcilmente

si

no

hay

Asumamos que tenemos la siguiente tabla Orders:


Ahora queremos seleccionar los registros cuyo campo OrderDate
sea 2008-11-11 de la tabla anterior. Para ello utilizamos la siguiente
sentencia SQL:
SELECT * FROM Orders WHERE OrderDate = 2008-11-11
Ahora, asumiendo que la tabla Orders se ve de la siguiente manera
(notemos ahora que existe un componente de hora en la columna
OrderDate):
Si utilizamos la misma sentencia SQL anterior, no dar resultado. Esto
sucede ya que la consulta est buscando fechas sin la porcin de la
hora.
Nota: Si quieres mantener tus consultas lo ms simples posible, no
ingreses datos de hora a menos que sea estrictamente necesario.

2. Valores NULL SQL


El valor NULL representa datos desconocidos o perdidos. Por defecto, una
columna de una tabla puede contener valores NULL. En este captulo
veremos los operadores IS NULL y IS NOT NULL.
2.1.

Valores NULL SQL

Si se le da la opcin de opcional a una columna en una tabla,


podemos insertar o actualizar un registro sin aadir un valor a esta
columna. Esto significa que el campo ser almacenado con un valor
NULL.
Los valores NULL se tratan de manera distinta a los otros valores.
NULL se utiliza como contenedor para valores desconocidos o no
aplicables.
Nota: No es posible comparar un valor NULL y 0, ya que no son
equivalentes.
2.2.

Trabajando con valores NULL SQL

Demos una mirada a la siguiente tabla Persons:


Supongamos que la columna Address es opcional en la tabla
Persons. Esto quiere decir que si insertamos un nuevo registro sin
valor para la columna Address, la columna se guardar como un
valor NULL.
Cmo podemos realizar las pruebas con valores NULL? No es posible
utilizar operadores para las pruebas, como =, < <>. En cambio
tenemos que utilizar operadores NULL y NOT NULL.
2.3.

IS NULL SQL

Cmo podemos seleccionar slo los registros que tengan valores


NULL en la columna Address? Para ello utilizamos el operador IS
NULL:
SELECT LastName, FirstName, Address, FROM Persons
WHERE Address IS NULL
El resultado se vera como esto:
2.4.

IS NOT NULL SQL

Cmo seleccionamos los registros que no tengan valores NULL en la


columna Address? Para ello utilizamos el operador IS NOT NULL:

SELECT LastName, FirstName, Address, FROM Persons


WHERE Address IS NOT NULL
El resultado se vera como esto:
En el siguiente captulo veremos las funciones ISNULL(), NVL(),
IFNULL() y COALESCE().
3. Funciones para valores NULL SQL
3.1.

Funciones SQL ISNULL(), NVL(), IFNULL() y COALESCE()

Demos una mirada a la siguiente tabla Products:


Suponemos que la columna UnitsOnOrder es opcional y puede
contener valores NULL. Tenemos entonces la siguiente sentencia
SELECT:
SELECT ProductName, UnitPrice*(UnitsInStock + UnitsOnOrder)
FROM Products
En el ejemplo anterior, si alguno de los valores en UnitsOnOrder son
NULL, el resultado ser NULL.
La funcin de Microsoft ISNULL() se utiliza para especificar cundo
necesitamos tratar con valores NULL.
Las funciones NVL(), IFNULL() y COALESCE() tambin pueden utilizarse
para conseguir el mismo resultado.
En este caso queremos que los valores NULL sean tratados como cero.
A continuacin, si el campo UnitsOnOrder es NULL no daar el
clculo ya que la funcin ISNULL() retorna cero si el valor es NULL:

MS Access
SELECT
ProductName,
UnitPrice
*
(UnitsInStock
IIF(ISNULL(UnitsOnOrder), 0, UnitsOnOrder)) FROM Prodcuts

SQL Server
SELECT
ProductName,
ISNULL(UnitsOnOrder, 0))
FROM Products

UnitPrice

(UnitsInStock

Oracle
Oracle no tiene una funcin ISNULL(). Sin embargo, podemos
utilizar la funcin NVL() para obtener el mismo resultado.
SELECT
ProductName,
UnitPrice
*
(UnitsInStock
+
NVL(UnitsOnOrder, 0))
FROM Products

MySQL
MySQL no tiene una funcin ISNULL(). Sin embargo, funciona un
poco diferente de como lo hace la funcin ISNULL() de Microsoft. En
MySQL podemos utilizar la funcin IFNULL(), de la siguiente
manera:
SELECT
ProdcutName,
UnitPrice
*
(UnitsInStock
+
IFNULL(UnitsOnOrder, 0))
FROM Products
O podemos utilizar la funcin COALESCE(), de la siguiente manera:
SELECT
ProductName,
UnitPrice
*
(UnitsInStock
+
COALSCE(UnitsOnOrder, 0))
FROM Products

4. Tipos de Datos Generales en SQL


En una base de datos es obligatorio que cada columna tenga un nombre y
un tipo de dato. Los desarrolladores SQL deben decidir qu tipo de dato
ser almacenado dentro de cada columna al crear una tabla SQL. Los tipos
de datos son una especie de etiqueta o gua para que SQL entienda qu
tipo de dato se espera recibir dentro de cada columna y, adems, identifica
cmo SQL va a interactuar con los datos almacenados.
La siguiente tabla lista los tipos de datos generales utilizados en SQL:
TIPO DE DATO
CHARACTER(n)
VARCHAR(n)
CHARACTER
VARYING(n)
BINARY(n)
BOOLEAN
VARBINARY(n)
BINARY
VARYING(n)
INTEGER(p)
SMALLINT
INTEGER
BIGINT
DECIMAL(p,s)
NUMERIC(p,s)
FLOAT(p)
REAL
FLOAT
DOUBLE
PRECISION
DATE
TIME
TIMESTAMP

DESCRIPCIN
Cadena de caracteres de largo n.
Cadena de caracteres. Largo variable. Largo mximo
n.
Cadena de binarios de largo n.
Almacena valores TRUE o FALSE (Verdadero o Falso).
Cadena de binarios. Largo variable. Largo mximo n.
Nmero
Nmero
Nmero
Nmero

entero
entero
entero
entero

(no
(no
(no
(no

decimal).
decimal).
decimal).
decimal).

Presicin
Presicin
Presicin
Presicin

p.
5.
10.
19.

INTERVAL
ARRAY
MULTISET
XML
5.
6.
7.
8.

Vous aimerez peut-être aussi