获取昨天和明天的 SQL 查询
查询帮助用户与数据库交互,以使用不同的查询在数据库中创建、插入、删除、更新数据。
在本文中,让我们看看如何根据数据库中的给定日期获取昨天和明天。
例子 -
指定日期:2021-03-23
昨天:2021-03-22 星期一
明天:2021-03-24 星期三
创建数据库日历:
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;
查询获取当前日期的昨天和明天:
要获得当前日期的昨天和明天,我们可以使用 MySQL 中的 CURRDATE()函数并从中减去 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;