Suma y Resta de Fechas
-
Upload
betii-makenzii-jiji -
Category
Documents
-
view
9.156 -
download
4
Transcript of Suma y Resta de Fechas
![Page 1: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/1.jpg)
Suma y Resta de Fechas [SQL Server]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.
DATEADD: Es la función utilizada para la Suma y Resta de fechas en SQL Server
DATEDIFF: Es la función utilizada para obtener el intervalo de tiempo entre dos fechas.
EJEMPLOS CON: DATEADD
Sintaxis:
DATEADD (<parámetro>, <cantidad a sumar>, <fecha a la cual se le sumara>)
Lista de posibles parámetros:
Parámetro
Descripción
dd Días
mm o m Mes
yy o yyyy Año
wk Semana
hh Horas
mi Minutos
ss Segundos
![Page 2: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/2.jpg)
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
Ejemplos :
Sumar 1 mes a la fecha indicada. En nuestro ejemplo utilizaremos el parámetro: MM - Mes
SELECT DATEADD(MM, 1, '2010-01-26') AS [FECHA]
Resultado:
Podemos notar que se sumo un mes a la fecha indicada.
Si queremos obtener la fecha en formato DD/MM/AAAA , solo tenemos que transformar nuestro código y obtendremos un resultado más
familiar. Lo hacemos de la manera siguiente:
**Para ver información acerca de formatos de fechas favor ver artículo [ Formatos de Fecha [SQL Server] ]
SELECT CONVERT(varchar(10), (SELECT DATEADD(MM, 1, '2010-01-26')), 103) AS [Fecha]
Resultado:
Cabe destacar que utilizando DATEADD 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.Ejemplo:
Restamos 10 días a la fecha indicada. Para este ejemplo utilizaremos el parámetro: DD - Día
SELECT DATEADD(DD, -10, '2010-01-26') AS [FECHA RESTADA]
Resultado:
![Page 3: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/3.jpg)
Le damos formato: SELECT CONVERT(varchar(10), (SELECT DATEADD(DD, -10, '2010-01-26')), 103) AS
[FECHA RESTADA]
Resultado:
DATEDIFF
Sintaxis:
DATEDIFF(<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:
Parámetro
Descripción
dd Días
mm o m Mes
yy o yyyy Año
wk Semana
hh Horas
mi Minutos
![Page 4: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/4.jpg)
ss Segundos
Nota: 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
Ejemplos:
1. Buscamos la diferencia de días existente entre dos fechas. En este ejemplo utilizaremos el parámetro: DAY - DIA
SELECT DATEDIFF(DAY, 2010-01-26, 2010-01-20) AS [DIFERENCIA DIAS]
Resultado:
2. Buscamos la diferencia de meses que existe entre dos fechas. En este ejemplo utilizaremos el parámetro: M - MES
SELECT DATEDIFF(MM, '2010-02-01', '2010-04-01') AS [MESES RESTANTES]
Resultado:
Conversión de FechasQuizás muchos han tenido el inconveniente de que tienen fechas en formatos que no
van acorde con el reporte que tenemos que generar o quizás muchos se han preguntado cómo se podría alterar el formato que trae una fecha cuando grabamos en SQL Server con el tipo de dato “date”, por esta razón publicamos esta información que podría ser de mucha utilidad para la generación de reportes con formatos reconocidos
y más legibles.
Aquí mostramos una tabla que contiene los formatos en que podemos converti una fecha utilizando la función CONVERT:
![Page 5: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/5.jpg)
Código Formato
![Page 6: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/6.jpg)
100 (1, 2) mes dd aaaa hh: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 hh:mi:ss
9 ó 109 (1, 2)
mes dd aaaa hh:mi:ss:mmma.m. (o p. m.)
110 mm-dd-aa
111 aa/mm/dd
112 aammddaaaammdd
13 ó 113 (1, 2)
dd mes aaaa hh:mi:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
20 ó 120 (2) aaaa-mm-dd hh:mi:ss(24h)
21 ó 121 (2) aaaa-mm-dd hh: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 aaaa hh:mi:ss:mmma.m.
131 N/A
Como podemos visualiza existen muchos formatos disponibles para fechas, pero explicaremos como podemos aplicar cada uno de ellos para obtener el formato deseado en
nuestros reportes y/o consultas.
EJJEMPLOS:
![Page 7: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/7.jpg)
Varios usos que podríamos dar con una simple consulta en fecha GETDATE()
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;
RESULTADO: En este la imagen del RESULTADO 1.1 podemos visualizar lo consultado anteriormente,
donde cada fecha tiene su respectivo formato como indica la tabla.
RESULTADO 1.1
OTRAS FORMAS:
Podemos 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.QUERY:
SELECT CONVERT(VARCHAR (10), <campo>, 103) FROM <tabla>En un ejemplo realizado recibimos el dato mostrado en la imagen RESULTADO 1.2
Query hecho: SELECT CONVERT(VARCHAR (10), (fecha), 103)FECHA_FORMATO_103 FROM
documentosVentaR
![Page 8: Suma y Resta de Fechas](https://reader036.fdocumento.com/reader036/viewer/2022082317/5571fb7b497959916994fe66/html5/thumbnails/8.jpg)
RESULTADO 1.2