【发布时间】:2017-09-03 09:00:25
【问题描述】:
我需要能够将月份和日期添加到参数的年份。
由于我们的财政年度从每年的 7 月 1 日开始,我需要这样做,以便用户可以输入财政年度 'YYYY' 作为参数,它将返回从前一年 7 月 1 日开始的财政年度的结果年份从当年的 7 月 1 日开始和结束。
例如。对于 2016 财年,我需要在 2015 年 7 月 1 日之后结束并在 2016 年 6 月 30 日之前开始的所有记录。目前用户必须记住指定 7 月 1 日和 6 月 30 日。我怎样才能做到这样他们就可以输入年?
目前有效,但需要完整日期作为参数
Where (E.end_date > @param1 Or E.end_date Is Null Or @param1 Is Null) And
(E.start_date < @param2 Or e.start_date Is Null Or @param2 Is Null)
但这行不通
Where (A.end_date > @param1 Or A.end_date Is Null Or @param1 Is Null) And
(A.start_date < DateAdd(day, 1, @param2) Or A.start_date Is Null Or
@param2 Is Null)
And
(A.end_date > dateadd(yyyy,-1,'@param3-07-01') And
A.start_date < '@param3-07-01' Or @param3 Is Null)
SQL,至少在他们给我的用于为我们的记录软件输入 SQL 的小部件中,不喜欢 '@param3-07-01' 将参数放在日期字符串中以评估日期的语法,但它会接受 @ 987654324@ 将允许我在 where 子句中将参数放在字符串中的其他情况,例如 Like '%@param1%'
【问题讨论】:
-
您使用哪个 SQL 服务器?
-
]来自供应商:Credible 不共享此信息,因为它是专有的,但是我与我们的 IT 部门核实,发现如果您编写的查询是标准 SQL,那么它将运行。如果您还有其他问题,请告诉我。”
标签: sql parameters optional-parameters