【发布时间】: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