datediff,period_diff,timestampdiff

编程入门 行业动态 更新时间:2024-10-22 18:50:51

date()-- 返回当前日期(年-月-日)

  • datediff() 函数返回两个日期之间的天数。
    DATEDIFF(date1,date2)
    date1 和 date2 参数是合法的日期或日期/时间表达式。
    注释:只有值的日期部分参与计算,具体的时间不参与计算
SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate----->1
SELECT DATEDIFF('2008-11-30  23:59:59','2008-11-29 00:00:00')----->1

SELECT DATEDIFF('2008-11-29','2008-11-30') AS DiffDate----->-1
SELECT DATEDIFF('2008-11-29 00:00:00','2008-11-30 23:59:59') AS DiffDate----->-1
  • period_diff()函数返回两个日期之间的月份数
    period_diff(date1,date2)
    date1 和 date2 参数是只能是YYYYMM或YYMM
SELECT PERIOD_DIFF(201901,201801)------------>12
SELECT PERIOD_DIFF(0801,0701)-------------->12
  • timestampdiff() 更加强大,可计算年,月等
    TIMESTAMPDIFF(unit,begin,end);
    TIMESTAMPDIFF函数返回end-begin的结果,其中begin和end是DATE或DATETIME表达式。
    TIMESTAMPDIFF函数允许其参数具有混合类型,例如,begin是DATE值,end可以是DATETIME值。 如果使用DATE值,则TIMESTAMPDIFF函数将其视为时间部分为“00:00:00”的DATETIME值。

unit参数是确定(end-begin)的结果的单位,表示为整数。 以下是有效单位:

MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR

SELECT TIMESTAMPDIFF(MONTH, '2018-01-01', '2018-06-01') ;----->5
SELECT TIMESTAMPDIFF(DAY, '2010-01-01', '2010-06-01') ;------>151
SELECT TIMESTAMPDIFF(MINUTE, '2018-01-01 10:00:00', '2018-01-01 10:45:00') ;----->45
SELECT TIMESTAMPDIFF(MINUTE, '2018-01-01 10:00:00', '2018-01-01 10:45:59');----->45
-- 差值应该是45分59秒。 但是,我们将unit参数传递为MINUTE,因此,函数按预期返回45分钟。如果使用SECOND而不是MINUTE,则TIMESTAMPDIFF函数将考虑SECOND部分
SELECT TIMESTAMPDIFF(SECOND, '2018-01-01 10:00:00', '2018-01-01 10:45:59');----->2759

计算大于等于18岁的记录

TIMESTAMPDIFF(YEAR,s2.birthdate,date_format(t.created,'%Y-%m-%d')) > =18

参考链接:
https://www.w3cschool/mysql/func-datediff-mysql.html

更多推荐

datediff,period_diff,timestampdiff

本文发布于:2023-06-11 02:12:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1372305.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:datediff   period_diff   timestampdiff

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!