DATEDIFF()- Date Functions
-
DATEDIFF()函数是一种用于计算日期差异的常见日期函数。 -
通常用于比较两个日期之间的时间跨度,以便进行日期计算和分析。

语法
大多数数据库中,DATEDIFF() 函数的语法:

DATEDIFF(unit, start_date, end_date)
-
unit: 这是一个必需的参数,用于指定计算日期差的单位。常见的单位包括:DAY,DD: 天数(默认)WEEK,WK: 周数MONTH,MM: 月数QUARTER,QQ: 季度数YEAR,YY: 年数
-
start_date: 起始日期,通常是一个日期或者日期时间表达式。 -
end_date: 结束日期,也是一个日期或者日期时间表达式。

返回值
DATEDIFF() 函数返回一个整数值,表示在指定的单位内,从 start_date 到 end_date 的时间差。具体返回值的解释如下:
- 如果
start_date在end_date之前,则返回正数。 - 如果
start_date在end_date之后,则返回负数。 - 如果
start_date和end_date相等,则返回 0。

eg.
-
计算天数差:
SELECT DATEDIFF('2024-07-20', '2024-07-15') AS days_diff;结果为
5,即从 2024 年 7 月 15 日到 2024 年 7 月 20 日的天数差。 -
计算月数差:
SELECT DATEDIFF(MONTH, '2023-03-15', '2024-07-23') AS months_diff;结果为
16,即从 2023 年 3 月 15 日到 2024 年 7 月 23 日的月数差。 -
计算当前日期与某一列的日期差:
SELECT DATEDIFF(DAY, order_date, CURRENT_DATE()) AS days_since_order FROM orders;返回每个订单的日期与当前日期之间的天数差,可用于跟踪订单的时效性。

Tips:
-
日期格式:在使用
DATEDIFF()函数时,确保传递的日期格式符合数据库的要求,通常是YYYY-MM-DD。 -
跨数据库的差异:不同的数据库系统可能对日期函数的实现和支持有所不同,例如,有些数据库可能支持额外的日期单位,或者可能有不同的函数名称和用法。
习题:


select n2.id
from new_cases as n1
join new_cases as n2
where DATEDIFF(n2.date, n1.date) = 1 and n2.increased_count > n1.increased_count

select datediff(created_at,'2018-01-13') as date_diff
from courses



















