需要根据日期跟踪和计费投放,例如,如果投放在“01/18/2010
之后但在02/11/2010
之前进行,则会向Job no. 198
付费。
我几乎知道它会是:
SELECT `no` FROM `jobs` WHERE 'start_date' >'2010-01-18' AND <`2010-02-11`;
为了获得'2010-01-18' AND < '2010-02-11'
,我必须查看数据库当然会失去目的
我获得了Var=$delivery_date
我被困在这里。
如何在不查看每次的情况下获取日期之间。
数据库样本
no Start Date
198 2010 01 18 14:35
199 2010 02 11 12:10
200 2010 03 07 12:33
201 2010 03 31 17:35
202 2010 05 25 05:05
203 2010 06 20 01:05
204 2010 07 14 08:50
205 2010 07 21 11:31
206 2010 09 07 03:47
我希望我解释得很好。我看一下手册和其他问题,但似乎他们只有一个日期是一个变量,我的全部都是
PS改变表的格式或方法不是一个选项,除非你能指出我的时间旅行部分
答案 0 :(得分:1)
您可以使用以下select语句:
SELECT * FROM jobs WHERE date(start_date) BETWEEN "2010-02-08" AND "2010-03-15";
所以你只考虑日期部分,而不是时间。
所以你的日期格式就像是
SELECT * FROM jobs WHERE date(STR_TO_DATE(start_date, '%Y %m %d %h:%i')) BETWEEN "2010-02-08" AND "2010-03-15"
答案 1 :(得分:0)
您希望找到jobs
最大start_date
的记录,该记录也小于$delivery_date
。这是查询
SELECT no
FROM jobs
WHERE `start_date` < $delivery_date
ORDER BY `start_date` DESC LIMIT 1
如果$delivery_date
设置为2010-02-08
,则上述查询将按预期返回198
。
如果$delivery_date
设置为2010-03-15
,则上述查询将返回200
。
答案 2 :(得分:0)
感谢ekad这完美无缺
选择否
从工作
在哪里start_date
&lt; $ DELIVERY_DATE
ORDER BY start_date
DESC LIMIT 1
在查询之后我不需要的工作是第一个