SQL Server - 计算两个日期之间的差异月数

时间:2016-02-24 13:51:39

标签: sql-server

有没有办法计算两个日期之间的月数?

我有这个

extract()

但是这给我带来了1,实际上我希望它是2,我应该对结果加1或者还有另一个专门用于此的函数?

让我解释一下我需要什么,我有几个月和几年,我不关心这一天因为总是01,所以每个日期用yyyy / mm / 01表示,在我的情况下我确定一个值这个值出现在2015-11-01' ' 2015-12-01',这意味着我有两个月的时间,现在我需要计算月数,所以使用datediff返回1,这在我的情况下是不对的。

2 个答案:

答案 0 :(得分:5)

如果我理解你的问题,这将是我的建议:

只需在DATEDIFF输出中添加1即可。

SELECT DATEDIFF(mm, '2015-11-01', '2015-12-01') +1

答案 1 :(得分:1)

您可以执行以下操作

if (is_array($_POST['checkbox_factuur'])) {
        foreach ($_POST['checkbox_factuur'] as $checkbox) {
            $sqls = "UPDATE as_bestanden SET selected='1' WHERE fda_nummer = '". $checkbox ."'";

            if ($conn->query($sqls) === TRUE) {
                header("Location: http://s-pt.nl/omgeving/dashboard/admin/facturen/create_xml");              
            } else {
                echo "Error: " . $sqls . "<br>" . $conn->error;
                exit;
            } 
        }
    }

SELECT 12 * (YEAR(Date1) 
              - YEAR(Date2)) 
       + (MONTH(Date1) 
           - MONTH(Date2)) AS months 
FROM table