[![在此处输入图片说明] [1]] [1]我需要返回订单的结果,其中条件是我们在表中有orderDate
,即Date字段,一个orderCloseTime
用于同一订单,该订单位于不同的表中,只有时间值。
我必须将orderDate
与now()
进行比较,但时间应该从另一个表的orderCLoseTime
列进行比较。
即如果orderCloseTime
具有今天的数据2017-07-17 09:40:12
但是如果它已经超过时间orderCloseTIme
,那么该数据不应该在查询中返回。
在下面的查询中,如果我将日期作为未来日期,那么它也不会返回数据,它只应将今天的日期与时间进行比较。
编辑:
select *
from opsorder mbo
where date(mbo.orderDate)>=date(now())
and storeId in
(select storeid from store mbs
INNER JOIN distributioncenter mbd on
mbd.distributionCenterId = mbs.distributionCenterId
where mbd.orderCloseTime > curtime()
and date(mbo.orderDate)>=date(now())
);
答案 0 :(得分:0)
从您对数据结构的描述看来,这应该可行。我无法看到使用子查询而不是连接的原因。
select
mbo.*,
DATE(mbo.orderDate) + ' ' + mbd.orderCloseTime AS OrderCutOffTime
from mb_opsorder mbo
inner join mb_store mbs
on mbo.storeId = mbs.storeid
inner join mb_distributioncenter mbd
on mbd.distributionCenterId = mbs.distributionCenterId
where
addtime(date(mbo.orderDate), mbd.orderCloseTime) >= now()