【发布时间】:2014-09-30 11:58:45
【问题描述】:
Datediff 对于获取两天之间的差异非常混乱:
DATEDIFF(DAY, '2014-09-01','2014-09-07')+1) AS totaldays
当我在上面写的时候,它会给我 7 天,这是完美的....
但是当我写下面的时候
DATEDIFF(DAY, '2014-09-01','2014-09-02')+1) AS totaldays
那么它会给我 2 天的时间,但我希望 1 day 具有以下功能
DATEDIFF(DAY, '2014-09-01','2014-09-02')+1) AS totaldays
我怎样才能得到它?
【问题讨论】:
-
请解释你想要的逻辑。如果第一个表达式正确计算 7,我希望第二个表达式正确计算 2。也许您应该使用更多日期示例和要计算的差异来编辑您的问题。
-
但我想写 1 天 datediff(day,'2014-09-01','2014-09-01-02')....
-
你确实有一天会用这种表达方式。当你添加一个时它会变成两个。
-
没有解决办法吗?
-
解释你的逻辑,01 - 07 是 6,你加一个所以它给你 7,01 - 02 是 1 你加 1 = 2。你想在这里做什么?如果您想使用几种“datediff”类型(具有不同的逻辑),我建议使用
CASE WHEN。
标签: sql sql-server sql-server-2008