Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从今天开始30天_Sql_Sql Server_Database_Datetime - Fatal编程技术网

Sql 如何从今天开始30天

Sql 如何从今天开始30天,sql,sql-server,database,datetime,Sql,Sql Server,Database,Datetime,从今天起30天内,我如何在查询中写入该行?相反,我将日期或月份从今天算起。将有助于了解哪个SQL。在MS SQL中: Select from x WHERE yid = rid AND (h.test1 <=todaysdate) AND (h.test1>= 30 days from today) 知道哪个SQL会有帮助。在MS SQL中: Select from x WHERE yid = rid AND (h.test1 <=todays

从今天起30天内,我如何在查询中写入该行?相反,我将日期或月份从今天算起。

将有助于了解哪个SQL。在MS SQL中:

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

知道哪个SQL会有帮助。在MS SQL中:

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

在MySQL中,您可以编写:

dateadd(dd, 30, todaysdate)
用户评论后编辑: 在MS SQL中,您可以使用

SELECT * FROM x
WHERE yid=r=d 
      AND h.test1 BETWEEN todaysdate AND ADDDATE(todaysdate, INTERVAL 31 DAY);

请注意,正如我在评论中所说,@dbaseman为您提供了添加天数的正确语法。我的查询就是使用这种语法的正确查询

用户评论后再次编辑:


在MySQL中,您可以编写:

dateadd(dd, 30, todaysdate)
用户评论后编辑: 在MS SQL中,您可以使用

SELECT * FROM x
WHERE yid=r=d 
      AND h.test1 BETWEEN todaysdate AND ADDDATE(todaysdate, INTERVAL 31 DAY);

请注意,正如我在评论中所说,@dbaseman为您提供了添加天数的正确语法。我的查询就是使用这种语法的正确查询

用户评论后再次编辑:

在Oracle中,使用BETWEEN表示简洁,使用sysdate表示今天的日期

SELECT * FROM x
WHERE yid=r=d 
      AND h.test1 BETWEEN DATEDIFF(dd, 30, NOW()) AND NOW();
在Oracle中,使用BETWEEN表示简洁,使用sysdate表示今天的日期

SELECT * FROM x
WHERE yid=r=d 
      AND h.test1 BETWEEN DATEDIFF(dd, 30, NOW()) AND NOW();


使用DateDiff函数获取30天的差异,并将其传递到查询中。选择DATEDIFFDAY,'2012-03-21',GETDATE这将返回整数位。。。等等,你查询的行比今天早,而且未来超过30天?好的一点@dbaseman我没有清楚地检查这一点..我有一个@CutOffDate,就是今天…但是选择从今天算起的最后30天使用DateDiff函数获取30天的差值,并在查询中传递相同的值。选择DATEDIFFDAY,'2012-03-21',GETDATE这将返回整数位。。。等等,你查询的行比今天早,而且在未来30多天?好的一点@dbaseman我没有清楚地检查这一点..我有一个@CutOffDate,就是今天…但是要选择从今天开始的最后30天,我认为这个问题不是针对mySQL的,那么为什么这个答案发布在这里???@Murtaza:OP-taged是问题SQL。。。这并不意味着MS-SQL和MySQL。。。我给了mysql一个答案,其他人可以添加其他sql…:日期介于今天和30天之间,从todays@Vadz:因此,如果您使用的是MySql,请接受我的最后一个查询,否则请使用@dbaseman one和BETWEEN语法。谢谢Marco..但是如何在SQL 2008报告查询中使用它..它与您刚才编写的相同吗?我想这个问题不是针对mySQL的,那么为什么在这里发布这个答案???@Murtaza:OP taged是问题SQL。。。这并不意味着MS-SQL和MySQL。。。我给了mysql一个答案,其他人可以添加其他sql…:日期介于今天和30天之间,从todays@Vadz:因此,如果您使用的是MySql,请接受我的最后一个查询,否则请使用@dbaseman one with BETWEEN语法。谢谢Marco..但如何将其放入SQL 2008 reports查询中..它与您刚才编写的查询相同吗?oracle中没有人问过答案。。请按要求回答。不要混淆其他人。@Murtaza sql server标记在我回答时不存在,我不知道它必须在哪个平台上工作。所以用oracle的方式问它。它和sql reports 2008一样吗?不,不是。我们需要使用datediff或dateadd函数来获取SQL中日期之间的结果在oracle中无人询问答案。。请按要求回答。不要混淆其他人。@Murtaza sql server标记在我回答时不存在,我不知道它必须在哪个平台上工作。所以用oracle的方式问它。它和sql reports 2008一样吗?不,不是。我们需要使用datediff或dateadd函数来获取SQL中日期之间的结果
SELECT *
  FROM x
 WHERE yid = rid AND h.test1 BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE) + 30;