mysql分别获取已有数据date中的年月日

感谢原问题回答者的分享: https://zhidao.baidu.com/question/217376525.html

mysql数据库,test表中有一字段Date,类型为date,已有数据,如何分别获取其中的年、月、日?不是获得当前日期哦!

分别用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 |
+-----------+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

 

记录一个mysql按日期分组统计的查询

 

SELECT DATE_FORMAT( deteline, "%Y-%m-%d %H" ) , COUNT( * ) 
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');

返回结果是104,这里比较的是两个时间的天数差;

 

 

?

1

SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13');


这里比较的是两个时间的月份,返回的结果是3;

 

第二种方法: DATEDIFF函数,就传入两个日期函数,比较的DAY天数,第一个参数减去第二个参数的天数值,具体用法如下:

 

?

1

SELECT DATEDIFF('2013-01-13','2012-10-01');

返回的结果也是104。

 

另外其它的日期函数,

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

 

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值