0
点赞
收藏
分享

微信扫一扫

【MySQL】MySQL日期函数官方文档及笔记

青乌 2022-01-31 阅读 28

前言

MySQL 5.7日期函数官方文档
遇到了日期边界的一些问题,这里统一记录

DATEDIFF(expr1,expr2)

  • expr1expr2 可以传'2007-12-31 23:59:59'2007-12-31 格式的数据,但都只读取到天的部分即 2007-12-31
  • 计算规则:expr1 - expr2,仅仅用天作为单位运算,并返回整数,会出现负数。

DATEDIFF(expr1,expr2) 解决的需求

根据LeetCode上题目的特点

  • 表中有date类型字段activity_date
  • 不能精确到时分秒的区间,只计算
  • 过滤条件为近x天,x > 0
    近1天(表示今天) where activity_date DATEDIFF(activity_date, CURDATE()) = 0
    近2天 where activity_date DATEDIFF(activity_date, CURDATE()) = 1
    近3天 where activity_date DATEDIFF(activity_date, CURDATE()) < 3
    需要取区间,所以是 <符号,更多的天数条件也需要用<

筛选截至今天近30天内的用户

WHERE datediff(CURDATE(),activity_date) < 30

等价于

where activity_date between date_add(CURDATE(), interval -29 day) and CURDATE()

# 其中
#-29 day表示29天前的日期
# CURDATE()表示当天
# 关键字计算 between and 作用在date类型时,取闭左右区间 
举报

相关推荐

0 条评论