SQL 查询检查日期是否大于今天
您可以使用 SQL 查询在数据库中处理和操作日期和时间值。您需要根据日期比较来筛选记录,例如检查日期是否大于今天。我们将使用下面给出的样本数据来查询。
日期比较
您可以使用各种比较运算符(如 >、<、=、>= 和 <=)来比较 SQL 中的日期。您可以使用这些运算符根据日期字段的相对值检索记录。
语法
检查 SQL 中日期是否大于今天的基本语法如下所示:
SELECT column1, column2, columnN FROM table_name WHERE date_column > CURRENT_DATE;
这里,date_column 是包含要比较的日期值的字段。“CURRENT_DATE” 是 SQL 中表示当前日期的关键字。
示例
假设您已使用如下所示的 CREATE TABLE 语句创建了一个名为 EVENTS 的表:
CREATE TABLE EVENTS ( EVENT_ID INT NOT NULL, EVENT_NAME VARCHAR(50) NOT NULL, EVENT_DATE DATE NOT NULL, LOCATION VARCHAR(50), PRIMARY KEY (EVENT_ID) );
现在,您可以使用如下所示的 INSERT 语句将值插入此表:
INSERT INTO EVENTS VALUES (1, 'Ramesh Meetup', '2024-12-15', 'Ahmedabad'), (2, 'Khilan Workshop', '2024-09-10', 'Delhi'), (3, 'Kaushik Seminar', '2022-11-25', 'Kota'), (4, 'Chaitali Webinar', '2021-10-05', 'Mumbai'), (5, 'Hardik Conference', '2024-09-20', 'Bhopal'), (6, 'Komal Symposium', '2019-09-30', 'Hyderabad'), (7, 'Muffy Hackathon', '2023-08-15', 'Indore'), (8, 'Ramesh Training', '2020-12-01', 'Ahmedabad'), (9, 'Khilan Lecture', '2024-10-15', 'Delhi'), (10, 'Komal Networking', '2021-11-10', 'Hyderabad');
现在,您可以使用以下命令查看它:
SELECT * FROM EVENTS;
表将如下创建:
EVENT_ID | EVENT_NAME | EVENT_DATE | LOCATION |
---|---|---|---|
1 | Ramesh Meetup | 2024-12-15 | Ahmedabad |
2 | Khilan Workshop | 2024-09-10 | Delhi |
3 | Kaushik Seminar | 2022-11-25 | Kota |
4 | Chaitali Webinar | 2021-10-05 | Mumbai |
5 | Hardik Conference | 2024-09-20 | Bhopal |
6 | Komal Symposium | 2019-09-30 | Hyderabad |
7 | Muffy Hackathon | 2023-08-15 | Indore |
8 | Ramesh Training | 2020-12-01 | Ahmedabad |
9 | Khilan Lecture | 2024-10-15 | Delhi |
10 | Komal Networking | 2021-11-10 | Hyderabad |
检索未来事件
您可以使用以下 SQL 查询来获取所有计划在今天之后的事件:
SELECT EVENT_NAME, EVENT_DATE FROM EVENTS WHERE EVENT_DATE > CURRENT_DATE;
上面的查询将生成一个表,其中仅列出日期在今天之后的那些事件:
EVENT_NAME | EVENT_DATE |
---|---|
Ramesh Meetup | 2024-12-15 |
Khilan Workshop | 2024-09-10 |
Hardik Conference | 2024-09-20 |
Khilan Lecture | 2024-10-15 |
Learn SQL in-depth with real-world projects through our SQL certification course. Enroll and become a certified expert to boost your career.
使用不同格式比较日期
如果表中的日期以不同的格式存储,则可能需要在比较之前将这些日期转换为标准日期格式。SQL 有各种日期函数,如 DATE_FORMAT() 和 TO_DATE()(取决于您使用的 SQL 方言)来处理不同的日期格式。
示例
假设 EVENTS 表中的“EVENT_DATE” 以 'DD-MM-YYYY' 格式的字符串形式存储。您可以将其转换为日期格式,然后将其与当前日期进行比较。
SELECT EVENT_NAME, EVENT_DATE FROM EVENTS WHERE STR_TO_DATE(EVENT_DATE, '%d-%m-%Y') > CURRENT_DATE;
输出
上面的查询将 EVENT_DATE 转换为日期格式,然后检索日期大于今天的事件:
EVENT_NAME | EVENT_DATE |
---|---|
Komal Networking | 10-11-2024 |
Kaushik Seminar | 25-11-2024 |
Ramesh Training | 01-12-2024 |
Ramesh Meetup | 15-12-2024 |
在 SELECT 语句中为日期比较设置别名
您可以使用“AS”关键字为日期比较的输出设置别名,从而获得更有意义的输出并使结果集更易于阅读。
示例
以下是一个示例,我们将日期比较的结果作为 'Future Events' 设置别名:
SELECT EVENT_NAME, EVENT_DATE AS 'Future Events' FROM EVENTS WHERE EVENT_DATE > CURRENT_DATE;
输出
此查询将生成以下带有别名的表:
EVENT_NAME | 未来事件 |
---|---|
Ramesh Meetup | 2024-12-15 |
Khilan Workshop | 2024-09-10 |
Hardik Conference | 2024-09-20 |
Khilan Lecture | 2024-10-15 |