【发布时间】:2017-12-14 18:45:12
【问题描述】:
我想声明一个变量以在将日期信息输入“WHERE”子句时消除重复输入。但是,数据库是只读的,不允许我声明任何内容。这是我尝试过的:
SET @begin_date = '2017-12-01'
SET @end_date = '2017-12-30'
WHERE (ship.dateShipped BETWEEN @begin_date AND @end_date)
OR (fulfill.datefulfilled BETWEEN @begin_date AND @end_date)
为了这篇文章,查询被简化了,但基本上是我想要做的。我必须将其交给销售人员以根据需要运行,并希望尽可能轻松地更改日期参数。
有没有办法在这种情况下声明变量?或者也许是另一种编写“WHERE”子句的方法,这样日期只需输入一次?
我也试过了:
SELECT @begin_date := '2017-12-01', @end_date := '2017-12-30'......
还有
DECLARE begin_date INT unsigned DEFAULT '2017-12-01'
DECLARE end_date INT unsigned DEFAULT '2017-12-30'
无济于事。
【问题讨论】:
-
内联变量怎么样? (即
BETWEEN '2017-12-01' AND '2017-12-30') -
是的,效果很好。但是,我想使用变量来执行此操作,因此在更改报告范围时只需调整 2 个日期(然后将更新以下变量实例)。尝试让使用它的销售人员尽可能轻松地更新日期范围。
标签: mysql