MySQL DATEDIFF函数获取两个日期的时间间隔的方法
描述
返回两个日期之间的时间间隔。
语法
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])
DateDiff函数的语法有以下参数:
参数
描述
interval
必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1,date2
必选。日期表达式。用于计算的两个日期。
firstdayofweek
可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear
可选。指定一年中第一周的常数。如果没有指定,则默认为1月1日所在的星期。有关数值,请参阅“设置”部分。
设置
interval参数可以有以下值:
设置
描述
yyyy
年
q
季度
m
月
y
一年的日数
d
日
w
一周的日数
ww
周
h
小时
m
分钟
s
秒
firstdayofweek参数可以有以下值:
常数
值
描述
vbUseSystem
0
使用区域语言支持(NLS)API设置。
vbSunday
1
星期日(默认)
vbMonday
2
星期一
vbTuesday
3
星期二
vbWednesday
4
星期三
vbThursday
5
星期四
vbFriday
6
星期五
vbSaturday
7
星期六
firstweekofyear参数可以有以下值:
常数
值
描述
vbUseSystem
0
使用区域语言支持(NLS)API设置。
vbFirstJan1
1
由1月1日所在的星期开始(默认)。
vbFirstFourDays
2
由在新年中至少有四天的第一周开始。
vbFirstFullWeek
3
由在新的一年中第一个完整的周开始。
说明
DateDiff函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算date1和date2相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当interval为“一周的日数”(“w”)时,DateDiff返回两个日期之间的星期数。如果date1是星期一,则DateDiff计算到date2之前星期一的数目。此结果包含date2而不包含date1。如果interval是“周”(“ww”),则DateDiff函数返回日历表中两个日期之间的星期数。函数计算date1和date2之间星期日的数目。如果date2是星期日,DateDiff将计算date2,但即使date1是星期日,也不会计算date1。
如果date1晚于date2,则DateDiff函数返回负数。
firstdayofweek参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果date1或date2是日期文字,则指定的年度会成为日期的固定部分。但是如果date1或date2被包括在引号("")中并且省略年份,则在代码中每次计算date1或date2表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在interval为“年”(“yyyy”)时,比较12月31日和来年的1月1日,虽然实际上只相差一天,DateDiff返回1表示相差一个年份。
MySQL中DATEDIFF(date1,date2)返回起始时间date1和结束时间date2之间的天数。date1和date2为日期或date-and-time表达式。计算时只用到这些值的日期部分。
【实例】使用DATEDIFF()函数计算两个日期之间的间隔天数,输入的SQL语句和执行结果如下所示。
mysql>SELECTDATEDIFF('2017-11-30','2017-11-29')ASCOL1, ->DATEDIFF('2017-11-30','2017-12-15')AScol2; +------+------+ |COL1|col2| +------+------+ |1|-15| +------+------+ 1rowinset(0.00sec)
由运行结果可知,DATEDIFF()函数返回date1-date2后的值,因此DATEDIFF('2017-11-30','2017-11-29')的返回值为1,DATEDIFF('2017-11-3023:59:59','2017-12-15')的返回值为-15。
到此这篇关于MySQLDATEDIFF函数获取两个日期的时间间隔的方法的文章就介绍到这了,更多相关MySQLDATEDIFF日期时间间隔内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!