【发布时间】:2016-08-21 11:35:31
【问题描述】:
我创建了一个包含 2 列的表来存储 startDate 和 endDate。
例如:
ID startDate endDate
1 2011-04-19 2011-04-21
我想计算这两天的差并返回“3”。是否可以使用 SQL 计算?
【问题讨论】:
-
是的。正如无数资料中所解释的,完全可以使用 SQL 进行计算。
我创建了一个包含 2 列的表来存储 startDate 和 endDate。
例如:
ID startDate endDate
1 2011-04-19 2011-04-21
我想计算这两天的差并返回“3”。是否可以使用 SQL 计算?
【问题讨论】:
使用DATEDIFF 函数。
SELECT DATEDIFF(endDate,startDate)+1 AS Difference
FROM yourtable
输出
Difference
3
SQL 小提琴:http://sqlfiddle.com/#!9/9373ec/3/0
更多阅读在这里http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff。
【讨论】:
是的,MySQL 中的 DATEDIFF() 函数正是这样做的。 SELECT DATEDIFF(endDate, startDate) 将返回差值(是 2,而不是 3)
【讨论】:
使用日期差异函数
select datediff(enddate, startdate) + 1 from your_table
【讨论】:
您可以为此使用DATEDIFF:
SELECT DATEDIFF(endDate, startDate) + 1
FROM mytable
注意:您必须加 1 才能使startDate 包含在结果中。
【讨论】: