SQL EOMONTH() 函数

SQL EOMONTH() 函数

SQL EOMONTH() 函数用于返回指定日期值的月份的最后一天,可选择使用偏移量。

语法

以下是 SQL EOMONTH() 函数的语法:

EOMONTH(start_date, [offset])

参数

该函数接受两个参数。下面对这两个参数进行描述:

  • start_date - 这指定我们想要找到该月最后一天的日期或日期时间值。

  • offset - 这指定开始日期之前或之后的月数。这是一个可选参数。如果忽略了偏移量,则函数返回该月的最后一天。

示例

以下示例演示了SQL EOMONTH()函数的用法:

SQL> SELECT EOMONTH('2023-02-17') AS END_OF_MONTH;

输出

当我们执行上述查询时,输出结果如下:

+--------------+
| END_OF_MONTH |
+--------------+
| 2023-02-28   |
+--------------+

示例

我们可以将GETDATE()函数用作EOMONTH()函数的参数,它检索当前月份的最后一天。

SQL> SELECT EOMONTH(GETDATE()) AS END_OF_MONTH;

输出

如果我们执行上述查询,结果将如下产生−

+--------------+
| END_OF_MONTH |
+--------------+
| 2023-02-28   |
+--------------+

示例

我们可以使用以下查询,在当前月的最后一天添加6个月:

SQL> SELECT EOMONTH(GETDATE(), 6) AS END_OF_MONTH;

输出

执行以上查询后,输出如下:

+--------------+
| END_OF_MONTH |
+--------------+
| 2023-08-31   |
+--------------+

示例

我们可以使用以下查询从当前月份的最后一天减去2个月

SQL> SELECT EOMONTH(GETDATE(), -2) AS END_OF_MONTH;

输出

当我们执行上述查询时,输出结果如下所示:

+--------------+
| END_OF_MONTH |
+--------------+
| 2023-12-31   |
+--------------+

示例

在下面的示例中,我们尝试使用以下查询来检索当前月份的天数 –

SQL> SELECT DAY(EOMONTH(CURRENT_TIMESTAMP)) AS NO_OF_DAYS_IN_MONTH;

输出

如果执行上述查询,结果如下所示:

+---------------------+
| NO_OF_DAYS_IN_MONTH |
+---------------------+
| 28                  |
+---------------------+

示例

在这里,我们尝试使用以下查询从指定的日期值中检索天数。

SQL> SELECT DAY(EOMONTH('2023-04-13')) AS NO_OF_DAYS_IN_MONTH;

输出

执行上述查询时,获得的输出如下:

+---------------------+
| NO_OF_DAYS_IN_MONTH |
+---------------------+
| 30                  |
+---------------------+

示例

假设我们使用CREATE语句在SQL数据库中创建了一个名为CALENDAR的表,查询如下所示:

SQL> CREATE TABLE CALENDAR(MONTHS DATE NOT NULL);

现在,让我们使用以下查询中显示的INSERT语句向CALENDER表中插入一些记录-

SQL> INSERT INTO CALENDAR (MONTHS) VALUES('2023-01-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-02-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-03-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-04-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-05-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-06-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-07-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-08-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-09-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-10-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-11-01');
INSERT INTO CALENDAR (MONTHS) VALUES('2023-12-01');

我们可以使用以下查询来验证表是否已创建:

SQL> SELECT * FROM CALENDAR;

成功在SQL数据库中创建了表CALENDAR。

+------------+
| MONTHS     |
+------------+
| 2023-01-01 |
| 2023-02-01 |
| 2023-03-01 |
| 2023-04-01 |
| 2023-05-01 |
| 2023-06-01 |
| 2023-07-01 |
| 2023-08-01 |
| 2023-09-01 |
| 2023-10-01 |
| 2023-11-01 |
| 2023-12-01 |
+------------+

我们可以使用以下查询来显示每个日历月份的总天数 –

SQL> SELECT MONTHS, DAY(EOMONTH(MONTHS)) AS NO_OF_DAYS_IN_MONTH FROM CALENDAR;

输出

执行以上查询时,输出结果如下:

+------------+---------------------+
| MONTHS     | NO_OF_DAYS_IN_MONTH |
+------------+---------------------+
| 2023-01-01 | 31                  |
| 2023-02-01 | 28                  |
| 2023-03-01 | 31                  |
| 2023-04-01 | 30                  |
| 2023-05-01 | 30                  |
| 2023-06-01 | 31                  |
| 2023-07-01 | 30                  |
| 2023-08-01 | 31                  |
| 2023-09-01 | 30                  |
| 2023-10-01 | 31                  |
| 2023-11-01 | 30                  |
| 2023-12-01 | 31                  |
+------------+---------------------+

示例

让我们使用CREATE语句在SQL数据库中创建另一个表,表名为 VEHICLE_RENTALS ,查询语句如下所示:

SQL> CREATE TABLE VEHICLE_RENTALS(ID INT NOT NULL, CUSTOMER_NAME VARCHAR (200) NOT NULL, VEHICLE VARCHAR (200), RENTED_DATE DATE NOT NULL)

现在,让我们使用以下查询中的INSERT语句将一些记录插入VEHICLE_RENTALS表中。

SQL> INSERT INTO VEHICLE_RENTALS(ID, CUSTOMER_NAME, VEHICLE, RENTED_DATE) VALUES(1, 'Dhruv', 'Activa', '2023-12-05');
INSERT INTO VEHICLE_RENTALS(ID, CUSTOMER_NAME, VEHICLE, RENTED_DATE) VALUES(2, 'Arjun','Access', '2023-03-01');
INSERT INTO VEHICLE_RENTALS(ID, CUSTOMER_NAME, VEHICLE, RENTED_DATE) VALUES(3, 'Dev','Jupiter', '2023-03-15');
INSERT INTO VEHICLE_RENTALS(ID, CUSTOMER_NAME, VEHICLE, RENTED_DATE) VALUES(4, 'Riya','Pept', '2023-12-05');
INSERT INTO VEHICLE_RENTALS(ID, CUSTOMER_NAME, VEHICLE, RENTED_DATE) VALUES(5, 'Aarohi','Vespa', '2023-05-02');
INSERT INTO VEHICLE_RENTALS(ID, CUSTOMER_NAME, VEHICLE, RENTED_DATE) VALUES(6, 'Lisa','Aviator', '2023-11-25');
INSERT INTO VEHICLE_RENTALS(ID, CUSTOMER_NAME, VEHICLE, RENTED_DATE) VALUES(7, 'Roy','Aprilia', '2023-05-30');

我们可以使用以下查询来验证是否已创建表格:

SQL> SELECT * FROM VEHICLE_RENTALS;

表VEHICLE_RENTALS已成功在SQL数据库中创建。

+----+---------------+---------+-------------+
| ID | CUSTOMER_NAME | VEHICLE | RENTED_DATE |
+----+---------------+---------+-------------+
| 1  | Dhruv         | Activa  | 2023-12-05  |
| 2  | Arjun         | Access  | 2023-03-01  |
| 3  | Dev           | Jupiter | 2023-03-15  |
| 4  | Riya          | Pept    | 2023-12-05  |
| 5  | Aarohi        | Vespa   | 2023-05-02  |
| 6  | Lisa          | Aviator | 2023-11-25  |
| 7  | Roy           | Aprilia | 2023-05-30  |
+----+---------------+---------+-------------+

通过以下查询,我们可以显示租赁车辆的归还日期(月底)−

SQL> SELECT CUSTOMER_NAME, VEHICLE, RENTED_DATE, EOMONTH(RENTED_DATE) AS RETURN_DATE FROM VEHICLE_RENTALS;

输出

如果我们执行上述查询,结果如下−

+----+---------------+---------+-------------+-------------+
| ID | CUSTOMER_NAME | VEHICLE | RENTED_DATE | RETURN_DATE |
+----+---------------+---------+-------------+-------------+
| 1  | Dhruv         | Activa  | 2023-12-05  | 2023-12-31  |
| 2  | Arjun         | Access  | 2023-03-01  | 2023-03-31  |
| 3  | Dev           | Jupiter | 2023-03-15  | 2023-03-31  |
| 4  | Riya          | Pept    | 2023-12-05  | 2023-12-31  |
| 5  | Aarohi        | Vespa   | 2023-05-02  | 2023-05-31  |
| 6  | Lisa          | Aviator | 2023-11-25  | 2023-11-30  |
| 7  | Roy           | Aprilia | 2023-05-30  | 2023-05-31  |
+----+---------------+---------+-------------+-------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程