按设置的日期范围查询强制年份基于月份
query by set date range forcing year based on month
SQL 服务器 2016 - PowerBI
我需要编写一个静态查询,该查询将在 PowerBI 中用于自动更新自身的仪表板,这些仪表板不会获得任何使用我们公司预算周期(即 7 月 1 日至 6 月 30 日)的提示。我可以提取数据很容易从我需要的表中获取,但这是我坚持使用的 where 子句。我需要它来查询以显示仅在 7/1/{year} - 6/30/{year} 之间完成的记录。有没有一种方法可以查询显示日期在
之间的所有记录
(if month(getdate()) in (1,2,3,4,5,6) then '7/1/' + year(getdate())) 或者如果 month(getdate() ) 在 (7,8,9,10,11,12) 然后 '7/1/' + year(dateadd(y,-1, getdate()))
和
(if month(Getdate()) in (1,2,3,4,5,6' then '6/30/' + year(getdate()) 否则如果 month(getdate())在 (7,8,9,10,11,12) 然后 '6/30/' + 年(datediff(y,1,getdate())))月(getdate()) 在 (1,2,3, 4,5,6) 然后 '7/1/' + year(getdate()))
如果我将该代码写入我的查询,在将 varchar 值“7/1/”转换为数据类型 int 时,我会收到失败错误。我认识到这是行中 / 的问题,并试图将 int 值附加到 varchar,但我似乎无法弄清楚如何解决这个问题。我错过了什么吗?
您需要先将 YEAR(GETDATE()) 转换为 VARCHAR,这样您就可以连接字符串 '7/1 /' 与年份(字符串)值。现在您将拥有一个新字符串,例如“7/1/2020”。现在在应用其他条件之前再次将此字符串转换为 DATE。这将像下面这样-
CAST('7/1/'+CAST(YEAR(GETDATE()) AS VARCHAR) AS DATE)
SQL 服务器 2016 - PowerBI
我需要编写一个静态查询,该查询将在 PowerBI 中用于自动更新自身的仪表板,这些仪表板不会获得任何使用我们公司预算周期(即 7 月 1 日至 6 月 30 日)的提示。我可以提取数据很容易从我需要的表中获取,但这是我坚持使用的 where 子句。我需要它来查询以显示仅在 7/1/{year} - 6/30/{year} 之间完成的记录。有没有一种方法可以查询显示日期在
之间的所有记录(if month(getdate()) in (1,2,3,4,5,6) then '7/1/' + year(getdate())) 或者如果 month(getdate() ) 在 (7,8,9,10,11,12) 然后 '7/1/' + year(dateadd(y,-1, getdate()))
和
(if month(Getdate()) in (1,2,3,4,5,6' then '6/30/' + year(getdate()) 否则如果 month(getdate())在 (7,8,9,10,11,12) 然后 '6/30/' + 年(datediff(y,1,getdate())))月(getdate()) 在 (1,2,3, 4,5,6) 然后 '7/1/' + year(getdate()))
如果我将该代码写入我的查询,在将 varchar 值“7/1/”转换为数据类型 int 时,我会收到失败错误。我认识到这是行中 / 的问题,并试图将 int 值附加到 varchar,但我似乎无法弄清楚如何解决这个问题。我错过了什么吗?
您需要先将 YEAR(GETDATE()) 转换为 VARCHAR,这样您就可以连接字符串 '7/1 /' 与年份(字符串)值。现在您将拥有一个新字符串,例如“7/1/2020”。现在在应用其他条件之前再次将此字符串转换为 DATE。这将像下面这样-
CAST('7/1/'+CAST(YEAR(GETDATE()) AS VARCHAR) AS DATE)