Select from x
WHERE yid = rid
AND (h.test1 <=todaysdate) AND (h.test1>= 30 days from today)
如何在查询中写出从今天起30天的那一行?相反,我从今天开始约会或者说月份。
答案 0 :(得分:3)
有助于了解哪个SQL。在MS SQL中:
dateadd(dd, 30, todaysdate)
答案 1 :(得分:1)
在MySQL中你可以写:
SELECT * FROM x
WHERE yid=r=d
AND h.test1 <= todaysdate
AND h.test1 >= ADDDATE(todaysdate, INTERVAL 31 DAY);
你确定无论如何都要求你吗? 你不想要(今天之前或30天之后的日期):
SELECT * FROM x
WHERE yid=r=d
AND (h.test1 <= todaysdate
OR h.test1 >= ADDDATE(todaysdate, INTERVAL 31 DAY));
或(今天至今天30天之间的日期)
SELECT * FROM x
WHERE yid=r=d
AND h.test1 BETWEEN todaysdate AND ADDDATE(todaysdate, INTERVAL 31 DAY);
用户评论后编辑:
在MS SQL中,您可以使用
SELECT * FROM x
WHERE yid=r=d
AND h.test1 BETWEEN todaysdate AND DATEADD(dd, 30, todaysdate);
或
SELECT * FROM x
WHERE yid=r=d
AND h.test1 BETWEEN DATEDIFF(dd, 30, todaysdate) AND todaysdate;
请注意(正如我在评论中已经告诉过您的那样)@dbaseman为您提供了添加天数的正确语法。我只是使用该语法的正确查询。
在用户评论后再次编辑:
SELECT * FROM x
WHERE yid=r=d
AND h.test1 BETWEEN DATEDIFF(dd, 30, NOW()) AND NOW();
答案 2 :(得分:0)
使用BETWEEN
表示简洁,sysdate
表示今天的日期。
SELECT *
FROM x
WHERE yid = rid AND h.test1 BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE) + 30;