Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中选择日期_Mysql_Date - Fatal编程技术网

在mysql中选择日期

在mysql中选择日期,mysql,date,Mysql,Date,需要根据日期跟踪和结算交付,例如,如果交付发生在2010年1月18日之后,但在2010年2月11日之前,则将向第198号作业进行结算 我很清楚这会是: SELECT `no` FROM `jobs` WHERE 'start_date' >'2010-01-18' AND <`2010-02-11`; 我希望我解释得足够好。我看了手册和其他问题,但似乎他们只有一个日期是可变的,而我的所有问题都是可变的 PS更改表格的格式或方法不是一个选项,除非您可以向我指出时间旅行部分看起来您想找

需要根据日期跟踪和结算交付,例如,如果交付发生在2010年1月18日之后,但在2010年2月11日之前,则将向第198号作业进行结算

我很清楚这会是:

SELECT `no` FROM `jobs` WHERE 'start_date' >'2010-01-18' AND <`2010-02-11`;
我希望我解释得足够好。我看了手册和其他问题,但似乎他们只有一个日期是可变的,而我的所有问题都是可变的


PS更改表格的格式或方法不是一个选项,除非您可以向我指出时间旅行部分

看起来您想找到一个
作业
记录,其最大的
开始日期
也小于
$delivery\u日期
。这是问题

SELECT no 
FROM jobs 
WHERE `start_date` < $delivery_date
ORDER BY `start_date` DESC LIMIT 1
选择否
来自乔布斯
其中“开始日期”<$delivery\u date
按“开始日期”说明限额1订购
如果
$delivery\u date
设置为
2010-02-08
,则上述查询将像您预期的那样返回
198


如果
$delivery\u date
设置为
2010-03-15
,则上述查询将返回
200

,您可以使用以下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"

多亏了ekad,这一切都很顺利

选择否 来自乔布斯 其中
开始日期
<$delivery\u日期 订单依据
开始日期
DESC LIMIT 1


查询后,我需要的工作编号是第一个

你是说如果
$delivery\u date
是,比如说
2010-03-15
,你想得到200?是的,这就是我想要的。请检查我下面的答案,看看它是否解决了你的问题。+1对于我即将给出的相同答案,只需一个更改,你不认为你也应该添加日期格式,因为它看起来像OP有不同的日期格式。@DipeshParmar:好的,是的。。。那是真的。。没有看到具体的日期格式那么好。。。虽然这可能是一个好主意,以正确的方式保存它,这样你就不必在搜索时做很多计算,我想这就是我需要的,只是时间必须在那里,我知道如何更改周围的日期格式以获得我需要的,我要试着看看这是否有效,如果有效或无效是,这只会有效,我想我在下一个开始日期之前,我试着给你的答案投赞成票,这是有效的,但我想我需要更多的代表分数谢谢
SELECT * FROM jobs WHERE date(STR_TO_DATE(start_date, '%Y %m %d %h:%i')) BETWEEN "2010-02-08" AND "2010-03-15"