Проблем:
Искате да покажете вчерашната дата (без час) в база данни на 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;