在MYSQL里,如何计算两个日期间的时间差,并已年月形式显示。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MYSQL里,如何计算两个日期间的时间差,并已年月形式显示。相关的知识,希望对你有一定的参考价值。
比如2013-10-13与2014-01-13的计算结果为0年3月。
不考虑 “天”的因素: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月追问
这样的话只要有一天就是显示一个月哦~能不能更精确一点?
追答思路已经提供了,剩下的按照思路扩展一下就OK了,自己做吧。何况你的题目写的很清楚要年月,不是吗?呵呵。
追问恩,也是,谢谢了!
参考技术A 不明白为什么在mysql里做这个时间差干什么, MYSQL里可根据时间差取数据,计算时间差, 一般都是在程序里取到数据后, 再算时间差的
如何在VB中计算两个日期间的天数
我是vb初学者,请各位大虾指教.因为是初学请详细说明.在这里感谢了.
最好写的详细点,我看不懂,比如说,先做个什么控件,什么的.
例如:计算2005-05-01 到 2006-02-03 之间的天数
我需要的是两个准确日期之间的天数,请各位大虾帮忙很着急要呀?????????????????????????
可以参考下面的代码:
Private Sub DTPicker1_Change()
Text1.Text = DateDiff("d", DTPicker1, DTPicker2)
End Sub
Private Sub DTPicker2_Change()
Text1.Text = DateDiff("d", DTPicker1, DTPicker2)
End Sub
扩展资料:
VB参考函数
Date 函数: 返回当前系统日期。
DateAdd 函数: 返回加上了指定的时间间隔的日期。
DateDiff 函数: 返回两个日期之间的间隔。
DatePart 函数: 返回给定日期的指定部分。
DateSerial 函数: 返回指定年月日的日期子类型的变体 。
DateValue 函数: 返回日期子类型的变体 。
Day 函数: 返回日期,取值范围为 1 至 31。
参考资料来源:百度百科-Visual Basic
参考技术ADateDiff 函数 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
语法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数:
描述
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
例如:计算2005-05-01 到 2006-02-03 之间的天数
'你可以用DateDiff函数,这个函数的作用就是判断2个日期型变量的差,DateDiff后边先跟的一个参数是选择按照什么方式计算差值(我们可以按照年,月,日等)
'只需要在TEXT1中输入例如 2006-7-30 就能判断出2日期的日期之差
Private Sub Command1_Click()
Dim Str As String
Str = Text1.Text
Label1.Caption = DateDiff("d", CDate(Format(Now, "YYYY-MM-DD")), CDate(Format(Str, "yyyy-mm-dd")))
'CDate强制转换。把变量强制转换成日期型变量
'这里边第一“d”就是DateDiff的参数。如果按照年来判断,你把"d"改成"yyyy"就可以
'yyyy 年
'q 季
'm 月
'y 一年的日数
'd 日
'w 一周的日数
'ww 周
'h 时
'n 分钟
's 秒
'如果你输入的不想按照例如(2006-10-15)这样输入,只需要改Format(Str, "YYYY-MM-DD")这个里。把这里的"YYYY-MM-DD"改掉
'(06-10-11,就改成Format(Str, "YY-MM-DD")
End Sub本回答被提问者采纳 参考技术C Private Sub Command1_Click()
Dim Str As String
Str = Text1.Text
Label1.Caption = DateDiff("d", CDate(Format(Now, "YYYY-MM-DD")), CDate(Format(Str, "yyyy-mm-dd")))
DateDiff函数的功能很强的!!
注意使用啊!! 参考技术D num = CDATE("2006-10-1")-CDATE("2006-9-10")
以上是关于在MYSQL里,如何计算两个日期间的时间差,并已年月形式显示。的主要内容,如果未能解决你的问题,请参考以下文章