感谢原问题回答者的分享: https://zhidao.baidu.com/question/217376525.html
分别用YEAR,MONTH,DAY函数,例如
mysql> select * from test;
+------------+
| DATE |
+------------+
| 2011-01-19 |
| 2011-01-19 |
| 2010-06-01 |
| 2010-06-10 |
| 2010-07-10 |
+------------+
年
mysql> select YEAR(DATE) from test;
+------------+
| YEAR(DATE) |
+------------+
| 2011 |
| 2011 |
| 2010 |
| 2010 |
| 2010 |
+------------+
月:
mysql> select month(DATE) from test ;
+-------------+
| month(DATE) |
+-------------+
| 1 |
| 1 |
| 6 |
| 6 |
| 7 |
+-------------+
日:
mysql> select day(DATE) from test;
+-----------+
| day(DATE) |
+-----------+
| 19 |
| 19 |
| 1 |
| 10 |
| 10 |
+-----------+
另外感谢另一位博主的分享: https://blog.csdn.net/llwan/article/details/7738991
FROM test
GROUP BY DATE_FORMAT( deteline, "%Y-%m-%d %H" )
查询某天:
deteline, "%Y-%m-%d"
某时:
deteline, "%Y-%m-%d %H"
依次类推。
其实就是对dateline进行处理,然后再对处理后的数据分组
附:mysql group by 原理
http://doc.chinaunix.net/mysql/200903/208368.shtml
转自http://hi.baidu.com/420591397/blog/item/bb67e8951b42046bd1135e12.html
MySql计算两个日期时间的差函数:
MySql计算两个日期时间的差函数:
第一种:TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,第二个和第三个参数是待比较的两个时间,比较是后一个时间减前一个时间,具体用法如下:
1
|
SELECT
TIMESTAMPDIFF(
DAY
,
'2012-10-01'
,
'2013-01-13'
);
|
1
|
SELECT
TIMESTAMPDIFF(
MONTH
,
'2012-10-01'
,
'2013-01-13'
);
|
这里比较的是两个时间的月份,返回的结果是3;
第二种方法: DATEDIFF函数,就传入两个日期函数,比较的DAY天数,第一个参数减去第二个参数的天数值,具体用法如下:
1
|
SELECT
DATEDIFF(
'2013-01-13'
,
'2012-10-01'
);
|
另外其它的日期函数,
now()函数返回的是当前时间的年月日时分秒,如:2008-12-29 16:25:46
CURDATE()函数返回的是年月日信息: 如:2008-12-29
CURTIME()函数返回的是当前时间的时分秒信息,如:16:25:46
另外,如果我们想对一个包含年月日时分秒日期格式化成年月日日期,可以使用DATE(time)函数,如
DATE(now()) 返回的是 2008-12-29
原博主地址:https://www.2cto.com/database/201503/381747.html