题解:1函数公式
#获取当前系统的日期时间
SELECT Now(); # 2021-12-22 13:50:58
#获取当前系统的日期
SELECT CURDATE(); # 2021-12-22
#获取当前系统的时间
SELECT CURTIME(); # 13:53:11
2.日期提取:
#从日期格式的字符串中获取年、月、日、时、分、秒 ,示例字符串:2021-12-22 13:50:58
# 使用函数 extract(type from data)
SELECT EXTRACT(YEAR FROM '2021-12-22 13:50:58'); # 2021
SELECT EXTRACT(MONTH FROM '2021-12-22 13:50:58'); # 12
SELECT EXTRACT(DAY FROM '2021-12-22 13:50:58'); # 22
SELECT EXTRACT(HOUR FROM '2021-12-22 13:50:58'); # 13
SELECT EXTRACT(MINUTE FROM '2021-12-22 13:50:58'); # 50
SELECT EXTRACT(SECOND FROM '2021-12-22 13:50:58'); # 58
3.日期增加或者减少
#日期增加,使用函数date_add(date,INTERVAL exp type)
#增加1天
SELECT DATE_ADD('2021-12-22 13:50:58', INTERVAL 1 DAY); # 2021-12-23 13:50:58
#增加1小时
SELECT DATE_ADD('2021-12-22 13:50:58', INTERVAL 1 HOUR); # 2021-12-23 14:50:58
#日期减少,使用函数date_sub(date,INTERVAL exp type)
# 减少1天
SELECT DATE_SUB('2021-12-01 13:50:58', INTERVAL 1 DAY); # 2021-11-30 13:50:58
#其他间隔
INTERVAL 1 YEAR
INTERVAL 1 MONTH
INTERVAL 1 DAY
INTERVAL 1 HOUR
INTERVAL 1 MINUTE
INTERVAL 1 SECOND
4.日期格式化
#日期格式化,注意MysqL中日期时间格式化字符串的写法:'%Y-%m-%d %H:%i:%s'
SELECT DATE_FORMAT('2021-12-01 13:50:58', '%Y/%m/%d %H:%i:%s'); # 2021/12/01 13:50:58
5.截取
格式1:
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度
格式2:
1、string 需要截取的字符串
2、a 可以理解为从第a个字符开始截取后面所有的字符串。
select day(date) day,count(question_id) question_cnt from
question_practice_detail where date_format(date,'%Y-%m')='2021-08'
group by day