SQL-запрос для получения вчера и завтра
Запросы помогают пользователям взаимодействовать с базой данных для создания, вставки, удаления, обновления данных в базе данных с помощью различных запросов.
В этой статье давайте посмотрим, как получить вчера и завтра относительно заданных дат в базе данных.
Пример -
Дата: 2021-03-23
Вчера: 2021-03-22 Понедельник
Завтра: 24.03.2021 Среда
Создание календаря базы данных:
CREATE DATABASE calendar;
Использование календаря базы данных
USE calendar;
Создание таблицы расписания:
CREATE TABLE schedule (dates date);
Просмотр описания таблицы:
DESCRIBE schedule;
Вставка строк в расписание:
INSERT INTO schedule VALUES("2021-03-23"); INSERT INTO schedule VALUES("2020-08-04"); INSERT INTO schedule VALUES("2021-06-08"); INSERT INTO schedule VALUES("2030-04-04"); INSERT INTO schedule VALUES("2025-09-13");
Просмотр данных в таблице:
SELECT* FROM schedule;
Запрос, чтобы получить вчера и завтра текущей даты:
Чтобы получить вчера и завтра текущей даты, мы можем использовать функцию CURRDATE() в MySQL и вычесть из нее 1, чтобы получить вчера, и добавить к нему 1, чтобы получить завтра.
SELECT CURDATE(), DATE_SUB(CURDATE(),INTERVAL 1 DAY) AS yesterday, DATE_ADD(CURDATE(),INTERVAL 1 DAY) AS tomorrow;
Здесь мы можем изменить заголовок столбца по умолчанию на другое имя с помощью AS.
Пример1:
Запрос для получения вчера и завтра дат в таблице:
Syntax:
SELECT CURDATE(),
DATE_SUB(CURDATE(),INTERVAL 1 DAY) AS some_name
DATE_ADD(CURDATE(),INTERVAL 1 DAY) AS some_name;
SELECT dates, DATE_SUB(dates,INTERVAL 1 DAY) AS yesterday, DATE_ADD(dates,INTERVAL 1 DAY) AS tomorrow FROM schedule;
Пример2:
Запрос для получения дат вчера и завтра в таблице с днями недели:
Syntax:
SELECT column_name,
DATE_SUB(column_name,INTERVAL 1 DAY) AS some_name,
DATE_ADD(column_name,INTERVAL 1 DAY) AS some_name,
DAYNAME(current_date),
DAYNAME(previous_day),
DAYNAME(next_day);
SELECT dates, DATE_SUB(dates,INTERVAL 1 DAY) AS yesterday, DATE_ADD(dates,INTERVAL 1 DAY) AS tomorrow, DAYNAME(dates) AS weekdayofdate, DAYNAME(DATE_SUB(dates,INTERVAL 1 DAY)) AS weekdayofYd, DAYNAME( DATE_ADD(dates,INTERVAL 1 DAY)) AS weekdayofTm FROM schedule;