SQL查询天数差异

时间:2018-07-24 13:56:51

标签: mysql sql

我有一张桌子

ID  LastName    FirstName   HireDate    TerminationDate  
1   Snow        John        2009-06-20  2016-01-01       
2   Drew        Nancy       2010-02-12  2017-10-04           
3   Spock       Captain     2012-03-14  null             

我想知道每个雇员的雇用与离职之间的天数差异,如果没有空值,则应将其作为今天的日期并计算 想知道它的SQL查询

3 个答案:

答案 0 :(得分:1)

您可以使用DATEDIFF使用以下内容:

SELECT *, DATEDIFF(IFNULL(TerminationDate, NOW()), HireDate) AS diffDays 
FROM table_name

如果TerminationDateNULL,则可以将IFNULL函数和NOW用作后备值。

  

演示: https://www.db-fiddle.com/f/jWLk8XaCxApsHge3KtvbJK/0

答案 1 :(得分:0)

SELECT DATEDIFF(day, IsNull(hireDate, GETDATE()), IsNull(TerminationDate, GETDATE())) AS DateDiff;

DATEDIFF() explanation

答案 2 :(得分:0)

您可以使用DATEDIFF()函数。

SELECT DATEDIFF(IFNULL(TerminationDate, NOW), HireDate) FROM table_name

以下是示例-https://www.w3schools.com/sql/func_mysql_datediff.asp