①获取一年前的时间
date_add( '2022-07-07', INTERVAL - 1 YEAR )
注:后面的YEAR,也可以是quarter 季;week 周;day 天;hour: 小时;minute 分钟;second 秒; microsecond 毫秒;
②datediff(date1,date2),两个日期相减,date1减去date2得到两个日期相差的天数
③timediff(time1,time2),time1减去time2,得到差值
④TIMESTAMPDIFF(MINUTE, 开始时间, 结束时间) as 时间差
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
参数:
SECOND 秒 SECONDS
MINUTE 分钟 MINUTES
HOUR 时间 HOURS
DAY 天 DAYS
MONTH 月 MONTHS
YEAR 年 YEARS
将X的值保留D位小数
函数可以从指定日期值中来获取年份值
YEAR() 函数需要接受 date 参数,并返回日期的年份。语法格式如下:
YEAR(date);
YEAR() 函数返回的年份值范围为 1000 到 9999,如果日期为零,YEAR() 函数返回 0。
SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY);
用来提取日期的一部分
EXTRACT(unit FROM date)
EXTRACT()函数需要两个参数:unit和date。
unit是要从日期中提取的间隔。 以下是unit参数的有效间隔。
DAY
DAY_HOUR
DAY_MICROSECOND
DAY_MINUTE
DAY_SECOND
HOUR
HOUR_MICROSECOND
HOUR_MINUTE
HOUR_SECOND
MICROSECOND
MINUTE
MINUTE_MICROSECOND
MINUTE_SECOND
MONTH
QUARTER
SECOND
SECOND_MICROSECOND
WEEK
YEAR
YEAR_MONTH
函数从日期减去指定的时间间隔
date_sub('2019-07-27', interval 30 day) 表示往前推30天
到date日期,今年过了多少天
date日期是本周的第几天,这个函数从周日开始为第一天;
date日期,在本月的第几天
对N/M取余,可用来判断奇数和偶数 mod(N,2) = 1 为奇数, mod(N,2) = 0 为偶数
将str字符串从左边开始截取len个字符
从右边开始截取字符串,len是截取的长度
将字符串中所有字符转换为大写
将字符串中所有字符转换为小写
字符串拼接
截取字符串,end 不写默认为空。
SUBSTRING(name, 2) 从第二个截取到末尾,注意并不是下标,就是第二个。
把同一字段1 下的字段2 拼接起来
效果演示①
SELECT id,GROUP_CONCAT(score) from score GROUP BY id;
效果演示
SELECT id,GROUP_CONCAT(DISTINCT score) from score GROUP BY id;
效果演示②
SELECT id,GROUP_CONCAT(DISTINCT score ORDER BY score DESC) from score GROUP BY id;
效果演示③
SELECT id,GROUP_CONCAT(DISTINCT score ORDER BY score DESC SEPARATOR ";") from score GROUP BY id;