mysql中last_day函数
时间: 2024-06-02 13:13:45 浏览: 147
在MySQL中,LAST_DAY()函数返回指定日期的月份的最后一天。
语法:
LAST_DAY(date)
参数说明:
date:要获取最后一天的日期,可以是日期值、日期时间值或者日期时间字符串。
返回值:
返回一个日期值,表示指定日期所在月份的最后一天。
示例:
SELECT LAST_DAY('2021-05-20'); -- 返回 '2021-05-31'
SELECT LAST_DAY('2021-06-15 12:34:56'); -- 返回 '2021-06-30'
SELECT LAST_DAY('2021-07-01'); -- 返回 '2021-07-31'
相关问题
MYSQL lastday函数作用
MySQL的LAST_DAY()函数是用来返回一个日期所在月份的最后一天的日期。例如,LAST_DAY('2022-01-15')将返回'2022-01-31'。它可以用于很多场合,比如在报表中显示每月的最后一天,或者计算某个月的总天数等。
它的语法如下:
```
LAST_DAY(date)
```
其中,date是一个日期或日期时间值,可以是一个日期字面量、日期变量或者日期函数返回的值。返回值是一个日期,表示输入日期所在月份的最后一天的日期。
SELECT DATE_FORMAT(create_time, '%Y-%m') AS month, FORMAT(count(1) / DAY(LAST_DAY(create_time)) * 100, 2) AS applyRate FROM sp_immigration GROUP BY DATE_FORMAT(create_time, '%Y-%m'); 报错Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ycyy_sj.sp_immigration.create_time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by,如何更改?
这个错误是因为 MySQL 5.7.5 版本以后,sql_mode 默认启用了 ONLY_FULL_GROUP_BY 模式,该模式要求 SELECT 语句中的非聚合列必须出现在 GROUP BY 子句中或者使用聚合函数进行处理。
如果你想要更改 sql_mode,可以通过以下两种方式之一进行更改:
1. 修改 MySQL 的配置文件 my.cnf 或者 my.ini,在 [mysqld] 段中加上以下语句:
```
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
```
其中,sql_mode 的值可以根据自己的需求进行修改。
2. 在 MySQL 客户端中执行以下语句:
```
SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
```
注:该方法修改的是全局的 sql_mode,如果需要修改 session 的 sql_mode,可以使用 SET SESSION sql_mode='...' 进行设置。
阅读全文