c cc Existen ocasiones en las que es necesario Sumar y Restar fechas, así como buscar la diferencia que existe entre una fecha y otra, refiriendonos a un rango. En este artículo mostraremos como hacer esto utilizando Microsoft SQL Server.
a aaEs la función utilizada para la Suma y Resta de fechas en SQL Server a a
Es la función utilizada para obtener el intervalo de tiempo entre dos fechas. ca aa c a E aa (<parámetro>,
,
) Lista de posibles parámetros:
a
dd
Días
mm o m
Mes
yy o yyyy
Año
wk
Semana
hh
Horas
mi
Minutos
ss
Segundos
La cantidad a sumar trabaja en base al parámetro indicado. La fecha debe estar en un formato correcto utilizado por SQL para almacenamiento de fechas. En nuestros ejemplos utilizaremos el siguiente: 2010-01-26
Sumar 1 mes a la fecha indicada. En nuestro ejemplo utilizaremos el parámetro: MM - Mes SELECa E aa(MM, 1,'2010-01-26') S [FECH
odemos notar que se sumo un mes a la fecha indicada. Si queremos obtener la fecha en formato aaMM , solo tenemos que transformar nuestro código y obtendremos un resultado más familiar. Lo hacemos de la manera siguiente: **ara ver información acerca de formatos de fechas favor ver artículo [ Formatos de Fecha [SQL Server SELEC CONVER(varchar(10),(SELEC a E aa(MM, 1,'2010-01-26')), 103) S [Fecha
Cabe destacar que utilizando a E aa podemos trabajar inverso en sentido de Restar en lugar de Sumar, simplemente tenemos que poner con signo negativo la cantidad y obtendremos el resultado restado. Restamos 10 días a la fecha indicada. ara este ejemplo utilizaremos el parámetro: aa - aía SELEC a E aa(aa,-10,'2010-01-26') S [FECH RES a
Le damos formato: SELECCONVER(varchar(10),(SELECa E aa(aa,-10,'2010-01-26')), 103) S [FECH RES a
a a
c a EaFF(<parámetro>, <primera fecha>, <segunda fecha>) Los parámetros indican qué queremos obtener como resultado de la diferencia entre 2 fechas (días, semanas, meses, etc), los mismos son indicados en la siguiente tabla:
a
dd
Días
mm o m
Mes
yy o yyyy
Año
wk
Semana
hh
Horas
mi
Minutos
ss
Segundos
El resultado se obtendrá de la siguiente operación: segunda fecha - primera fecha La fecha debe estar en un formato correcto utilizado por SQL para almacenamiento de fechas. En nuestros ejemplos utilizaremos el siguiente: 2010-01-26
1. Buscamos la diferencia de días existente entre dos fechas. En este ejemplo utilizaremos el parámetro: a - a SELEC a EaFF(a , 2010-01-26, 2010-01-20) S [aFERENC a S
2. Buscamos la diferencia de meses que existe entre dos fechas. En este ejemplo utilizaremos el parámetro: M - MES SELEC a EaFF(MM,'2010-02-01','2010-04-01') S [MESES RES NES
Conversión de Fechas a
a !"#$%&'( G 100 (1, 2)
mesddaaaahh:mia.m. (o p. m.)
101
mm/dd/aaaa
102
aa.mm.dd
103
dd/mm/aaaa
104
dd.mm.aa
105
dd-mm-aa
106 (1)
dd mes aa
107 (1)
Mes dd, aa
108 9 ó 109 (1, 2)
hh:mi:ss mesddaaaahh:mi:ss:mmma.m. (o p. m.)
110
mm-dd-aa
111
aa/mm/dd
112
aammdd aaaammdd
13 ó 113 (1, 2) 114
dd mes aaaahh:mi:ss:mmm(24h) hh:mi:ss:mmm(24h)
20 ó 120 (2)
aaaa-mm-ddhh:mi:ss(24h)
21 ó 121 (2)
aaaa-mm-ddhh:mi:ss.mmm(24h)
126 (4)
aaaa-mm-ddThh:mi:ss.mmm (sin espacios)
127 (6, 7)
aaaa-mm-ddThh:mi:ss.mmmZ
130 (1, 2)
dd mes aaaahh:mi:ss:mmma.m.
131
N/A
G
ñ ñ !" SELECT CONVERT(VARCHAR (30),GETDATE(), 103) FECHA_FORMATO_103; SELECT CONVERT(VARCHAR (30),GETDATE(), 105) FECHA_FORMATO_105; SELECT CONVERT(VARCHAR (30),GETDATE(), 106) FECHA_FORMATO_106; SELECT CONVERT(VARCHAR (100),GETDATE(), 107) FECHA_FORMATO_107; SELECT CONVERT(VARCHAR (30),GETDATE(), 110) FECHA_FORMATO_110; SELECT CONVERT(VARCHAR (30),GETDATE(), 111) FECHA_FORMATO_111;
Y
# $%&' ( ))
$%&' ( )) odemos variar en la forma de obtener el dato que queremos convertir, entonces para esto haremos unas prácticas utilizando datos de fechas que estan ubicados en una tabla y a partir de este haremos las conversiones requeridas. QUER: SELECT CONVERT(VARCHAR (10),
, 103) FROM
En un ejemplo realizado recibimos el dato mostrado en la imagen RESULTADO 1.2 Query hecho: SELECTCONVERT(VARCHAR (10),(fecha), 103)FECHA_FORMATO_103 FROMdocumentosVentaR
RESULTADO 1.2