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 |
使用不同格式比較日期
如果表中的日期以不同的格式儲存,則可能需要在比較之前將這些日期轉換為標準日期格式。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 |