Problema:
Le gustaría mostrar la fecha de ayer (sin hora) en una base de datos de SQL Server.
Solución:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
Suponiendo que hoy es 2020-09-24, el resultado es:
yesterday_date |
---|
2020-09-23 |
Discusión:
Para obtener la fecha de ayer, debe restar un día a la fecha de hoy. Usa GETDATE()
para obtener la fecha de hoy (el tipo es datetime
) y enviarlo a date
. En SQL Server, puede restar o sumar cualquier número de días usando DATEADD()
función.
El DATEADD()
La función toma tres argumentos:datepart
, number
y date
. Aquí, el valor de datepart
es day
, porque la unidad de tiempo que desea restar es el día. El segundo argumento es -1 (usted resta 1 día, que es lo mismo que sumar -1 día). El tercer argumento es la fecha de hoy, la fecha de la que desea restar.
Por supuesto, puede retroceder cualquier intervalo de tiempo con la misma facilidad. He aquí un ejemplo:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
También se puede added
a una fecha Entonces, aquí hay una forma si desea obtener la fecha de mañana:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;