重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
MySql计算两个日期的时间差函数TIMESTAMPDIFF用法:
创新互联建站于2013年创立,先为稷山等服务建站,稷山等地企业,进行企业商务咨询服务。为稷山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
语法:
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
说明:
返回日期或日期时间表达式datetime_expr1
和datetime_expr2the
之间的整数差。其结果的
单位由interval
参数给出。interval
的法定值同TIMESTAMPADD()函数说明中所列出的相同。
复制代码
代码如下:
SELECT
TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01');
interval可是:
SECOND
秒
SECONDS
MINUTE
分钟
MINUTES
HOUR
时间
HOURS
DAY
天
DAYS
MONTH
月
MONTHS
YEAR
年
YEARS
TO_DAYS(date字段1) - TO_DAYS(date字段2)
1、利用TO_DAYS函数
select to_days(now()) - to_days('19930908')
2、利用DATEDIFF函数
select datediff(now(),'19930908')
参数1 - 参数2 等于间隔天数
在 MySQL 中创建表时,对照上面的表格,选择到合适自己的数据类型。选择datetime 还是 timestamp会有点犯难。这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的一半。
扩展资料:
在ORDER BY操作中,MySQL 只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快 ORDER BY 方面也没什么作用)。
如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如 “0/1” 或 “Y/N” 等值,就没有必要为它创建一个索引。
参考资料来源:百度百科-mySQL
用时间戳来计算
SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP('2015-04-20 15:12:12'))/60;
也就是得到两个时间相差的秒数,然后除60得到分种。
不考虑 “天”的因素:
select if(month(d2)-month(d1)0,
concat(year(d2)-year(d1),'年',month(d2)-month(d1),'月'),
concat(year(d2)-year(d1)-1,'年',month(d2)-month(d1)+12,'月')) as r from xxxxx
----------------------------------------------------------------------------------------------------------
例子:
d1='2013-05-13'
d2='2014-07-13'
select if(month('2014-07-13')-month('2013-05-13')0,
concat(year('2014-07-13')-year('2013-05-13'),'年',month('2014-07-13')-month('2013-05-13'),'月'),
concat(year('2014-07-13')-year('2013-05-13')-1,'年',month('2014-07-13')-month('2013-05-13')+12,'月')) as r
结果:1年2月
=================================================================
d1='2013-05-13'
d2='2014-01-13'
select if(month('2014-01-13')-month('2013-05-13')0,
concat(year('2014-01-13')-year('2013-05-13'),'年',month('2014-01-13')-month('2013-05-13'),'月'),
concat(year('2014-01-13')-year('2013-05-13')-1,'年',month('2014-01-13')-month('2013-05-13')+12,'月')) as r
结果:0年8月