1

我有一个包含 2.000.000 行的巨大表格,其中有两列是日期。现在我想找到两个日期之间的差异> 30的所有行。我已经设置了这种查询:

SELECT DATEDIFF(date1, date2) as new
FROM table1;

它可以工作并列出所有结果并显示差异。现在,我希望只有那些两个日期之间的差异大于 30 的情况,并且也有这个数字的证据。

我努力了

SELECT DATEDIFF(date1, date2) >30 as new
FROM table1;

但结果是在新列中,我的值始终为 1(我认为它代表 TRUE),但我需要看到这种差异(数字:31、32、33 ecc。)。

有人可以帮帮我吗?

谢谢你

4

3 回答 3

0
select datediff(date1;date2) >30 as new from table1

gives values: 1 because, it returns whether datediff(date1;date2) > 30is true or not!

Try this


SELECT datediff(date1;date2) as new FROM table WHERE datediff(date1;date2) >30;

于 2013-06-13T19:23:57.797 回答
0
SELECT DATEDIFF(date1, date2) as new
FROM table1
WHERE DATEDIFF(date1, date2) > 30;
于 2013-06-13T19:24:18.683 回答
0

如果我没记错的话,试试 SELECT datediff(date1, date2) AS new FROM table1 WHERE new > 30;

>运算符可用作布尔值,用于比较您的datediff()和您的30. 这就是为什么您应该将它放在 WHERE 语句中,以防止在您的选择中出现布尔值。

于 2013-06-13T19:23:21.590 回答