【问题标题】:How to calculate remaining days using DATEDIFF如何使用 DATEDIFF 计算剩余天数
【发布时间】:2018-07-01 03:04:01
【问题描述】:

我编写了一个基本查询来显示所有项目、截止日期和完成状态,但我想扩展我的查询以显示完成天数,这应该显示每个未完成项目的剩余天数。如何使用DATEDIFF 函数达到预期效果?

我可以用吗

=IIF(DATEDIFF(duedate.Day, Fields!Created.Value, Today) < 30, 1, 0)

输出:

id  name    duedate     today   
---------------------------------------------------------------
1   Alpha   2040-01-01  2018-07-01T01:49:43.943Z    Incomplete
2   Bravo   2030-03-01  2018-07-01T01:49:43.943Z    Incomplete
3   Charlie 2017-02-01  2018-07-01T01:49:43.943Z    Complete
4   Delta   2017-04-01  2018-07-01T01:49:43.943Z    Complete

我当前的查询:

SELECT 
    id, name, duedate, GETDATE() AS today,
    CASE 
       WHEN duedate <= CURRENT_TIMESTAMP THEN 'Complete'
       WHEN duedate >= CURRENT_TIMESTAMP THEN 'Incomplete'
    END
FROM 
    Project
ORDER BY 
    Project.name ASC;

想要的结果:

id  name    duedate     today                       Status      daystocomp
--------------------------------------------------------------------------
1   Alpha   2040-01-01  2018-07-01T01:49:43.943Z    Incomplete  8030 or 22y1m1d
2   Bravo   2030-03-01  2018-07-01T01:49:43.943Z    Incomplete  4380 or 12y1m1d
3   Charlie 2017-02-01  2018-07-01T01:49:43.943Z    Complete    0
4   Delta   2017-04-01  2018-07-01T01:49:43.943Z    Complete    0

【问题讨论】:

    标签: sql datediff getdate sql-server-2017


    【解决方案1】:

    是的,你可以使用datediff()

    SELECT id, name, duedate, GETDATE() AS today,
           (CASE WHEN duedate <= CURRENT_TIMESTAMP THEN 'Complete'
                 WHEN duedate > CURRENT_TIMESTAMP THEN 'Incomplete'
            END),
           (CASE WHEN duedate > CURRENT_TIMESTAMP
                 THEN DATEDIFF(day, CURRENT_TIMESTAMP, duedate)
            END) as daystocomp
    FROM Project
    ORDER BY Project.name asc;
    

    【讨论】:

    • 嘿@gordon Linoff -- 如何隐藏空行?谢谢
    • 如果您只想要未来的截止日期,请添加duedate &gt; CURRENT_TIMESTAMP
    猜你喜欢
    • 2014-06-11
    • 2013-06-26
    • 2021-08-12
    • 2010-11-13
    • 2021-02-18
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    相关资源
    最近更新 更多