Select from x WHERE yid = rid AND (h.test1 <=todaysdate) AND (h.test1>= 30 days from today)
How can I write that line 30 days from today in a query? Instead I put a date or a month from todays date.
Select from x WHERE yid = rid AND (h.test1 <=todaysdate) AND (h.test1>= 30 days from today)
How can I write that line 30 days from today in a query? Instead I put a date or a month from todays date.
In MySQL you can write:
SELECT * FROM x WHERE yid=r=d AND h.test1 <= todaysdate AND h.test1 >= ADDDATE(todaysdate, INTERVAL 31 DAY);
Are you sure anyway of your request?
Don't you want instead (dates before today or after 30 days):
SELECT * FROM x WHERE yid=r=d AND (h.test1 <= todaysdate OR h.test1 >= ADDDATE(todaysdate, INTERVAL 31 DAY));
or (dates between today and 30 days from today)
SELECT * FROM x WHERE yid=r=d AND h.test1 BETWEEN todaysdate AND ADDDATE(todaysdate, INTERVAL 31 DAY);
EDITED after user comment:
In MS SQL you can use
SELECT * FROM x WHERE yid=r=d AND h.test1 BETWEEN todaysdate AND DATEADD(dd, 30, todaysdate);
or
SELECT * FROM x WHERE yid=r=d AND h.test1 BETWEEN DATEDIFF(dd, 30, todaysdate) AND todaysdate;
Note that (as I've already told you in my comment) @dbaseman gave you correct syntax for adding days. Mine is just the correct query using that syntax.
EDITED again after user comment:
SELECT * FROM x WHERE yid=r=d AND h.test1 BETWEEN DATEDIFF(dd, 30, NOW()) AND NOW();
Would help to know which SQL. In MS SQL:
dateadd(dd, 30, todaysdate)
Use BETWEEN
for brevity and sysdate
for todays date in Oracle.
SELECT * FROM x WHERE yid = rid AND h.test1 BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE) + 30;