牛客网sql28该题需多看解答,思路多多

题目:计算用户8月每天的练题数量

题解: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

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...