日期小函数
作者:互联网
在mysql 里提供了一些有意思的日期小函数,虽然多,但实用的没几个,比如下面这个栗子
定义一张题目练习记录表,其中 question_id 代表题目,date 代表日期
CREATE TABLE `question_practice_detail` ( `id` int NOT NULL, `device_id` int NOT NULL, `question_id`int NOT NULL, `result` varchar(32) NOT NULL, `date` date NOT NULL );
插入部分数据如下
如上图所示,只要排除了其他月份,统计8月份每天的条数即可
SELECT DAYOFMONTH(date) DAY, count(question_id) question_cnt FROM question_practice_detail WHERE MONTH (date) = 8 GROUP BY DAY
其中,使用到了两个日期函数,DAYOFMONTH 得到每月几号,即 1~31 ,MONTH 得到的是月份,即 1~12 。这里的参数类型可以是 date,或者 datetime,甚至是字符串
类似的,除了 MONTH ,还有 YEAR ,HOUR,MINUTE,SECOND ,除了4位年份,时的范围 0~23,分秒的范围都是 0~59,不补零
如果需要操作月份,比如增加或减少指定月份的月份,可以使用 PERIOD_ADD 函数,当然,也只能是指定的月份,格式为 YYYYMM 或者 YYMM,其他的都不对。该函数返回的是 YYYYMM格式,可以识别到跨年。
再比如计算两个月份之间相差的月份 PERIOD_DIFF 函数,当然,也只能是指定的月份,格式为 YYYYMM 或者 YYMM,返回的是前面的月份减去后面的月份,可能为负值。
标签:函数,月份,question,日期,date,NULL,id 来源: https://www.cnblogs.com/yuan404/p/16267621.html