MYSQL里面如何查询两个日期的差,也就是相差的天数

MYSQL里面如何查询两个日期的差,也就是相差的天数,第1张

MYSQL里面如何查询两个日期的差,也就是相差的天数

mysql常用的日期加减函数与实例教程

MySQL 日期类型

MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。

日期类型存储空间 日期格式 日期范围

------------ --------- --------------------- -----------------------------------------

datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038

date 3 bytes YYYY-MM-DD1000-01-01 ~ 9999-12-31

year 1 bytes YYYY 1901~ 2155

计算日期差的例子代码:

<?php

$Dob='2003-01-23'//在你的程序中要使用$_POST获取

list($y,$m,$d)=explode('-',$Dob)

$age=ceil((time()-mktime(0,0,0,$m,$d,$y))/3600/36/365)

echo "$age\n"//这就能输入实满年龄:5岁

?>

相信你能仿照我上面的例子,编写出你满意的程序。

输入内容自动转换为大写的代码我在这个帖子中回答了你的:http://zhidao.baidu.com/question/92757708.html

如果你不使用我那个帖子的方法,也可以在PHP里面使用strtoupper函数进行转换,例如:

$Dob = strtoupper($_POST['dob'])//以post方式接收信息

不考虑 “天”的因素:

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月


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8328933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存