Проблем:
Искате да покажете вчерашната дата (без час) в база данни на SQL Server.
Решение:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
Ако приемем, че днес е 2020-09-24, резултатът е:
yesterday_date |
---|
23.09.2020 |
Дискусия:
За да получите вчерашната дата, трябва да извадите един ден от днешната. Използвайте GETDATE()
за да получите днешната дата (типът е datetime
) и го прехвърляте към date
. В SQL Server можете да изваждате или добавяте произволен брой дни, като използвате DATEADD()
функция.
DATEADD()
функцията приема три аргумента:datepart
, number
и date
. Тук стойността на datepart
е day
, защото единицата за време, която искате да извадите, е ден. Вторият аргумент е -1 (изваждате 1 ден, което е същото като добавянето на -1 ден). Третият аргумент е днешната дата — датата, от която искате да извадите.
Разбира се, можете също толкова лесно да се върнете назад с произволен интервал от време. Ето един пример:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Може също да се added
на среща. И така, ето начин, ако искате да получите утрешната дата:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;