如何从今天获得30天

时间:2012-03-28 05:50:16

标签: sql sql-server database datetime

Select from x
    WHERE yid = rid
    AND (h.test1 <=todaysdate) AND (h.test1>= 30 days from today)

如何在查询中写出从今天起30天的那一行?相反,我从今天开始约会或者说月份。

3 个答案:

答案 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;