这标题听起来很糟糕,但它让我难住了。场景是我需要编写一个查询,该查询将从财政月开始日期列中获取分钟(开始日期)。该数据集(查询)将在 SQL 报表生成器中运行,我需要构建查询,以便当有人想要时,他们可以通过选择以下任一者来检索数据:当前月份、3 个月或 6 个月。作为构建查询的新手,我在理解如何将整个查询结合在一起方面遇到了问题。以下是查询现在的样子:
SELECT *
from date_Table
where(
Select fiscal_date
from date_table
where full_date >= TO_DATE('5/8/2015 12:00:00 AM', 'mm/dd/yyyy HH:MI:SS AM'));
所以我可以编写一个返回开始日期的查询,问题是我需要日期为从今天起 6 个月并从该月的第一天开始,结束日期是今天或昨天。
希望大家能够帮忙。
最佳答案
为此声明变量并尝试这个
declare @running_for datetime;
set @running_for = getdate();
SELECT *
from date_Table
where(
Select fiscal_date
from date_table d
where
(datepart(m,d.full_date) = DATEPART(m, DATEADD(m, -6, getdate())))
and
d.full_date <= @running_for-1 --- if it is yesterday
// d.full_date <= @running_for --- if it is today
关于mysql - 编写 SQL 查询日期范围以从已知结束日期检索开始日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33767316/