Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 - Fatal编程技术网

Mysql 如何在两个日期之间选择记录&;时代?

Mysql 如何在两个日期之间选择记录&;时代?,mysql,Mysql,我有两张桌子客户(客户id、客户名称、客户名称)和订单(订单id、客户id、总金额、订单日期、订单时间、订单状态) 订单类型\u日期和订单时间为varchar。 我必须显示两个日期和时间之间的记录。 我写了这个查询: SELECT o.Order_Id, c.client_name, c.client_lname, o.Total_Amount, o.Order_Date, o.Order_Time FROM orders AS o JOIN client

我有两张桌子<代码>客户(客户id、客户名称、客户名称)和
订单(订单id、客户id、总金额、订单日期、订单时间、订单状态)
订单类型\u日期和订单时间为varchar。 我必须显示两个日期和时间之间的记录。 我写了这个查询:

SELECT 
  o.Order_Id, 
  c.client_name, 
  c.client_lname, 
  o.Total_Amount, 
  o.Order_Date, 
  o.Order_Time 
FROM orders AS o 
JOIN client AS c 
  ON o.Client_id = c.Client_id 
WHERE  (o.Order_Date between '01/01/2013' and '22/01/2013' ) 
AND (o.Order_Time between '17:41:59' and '20:42:04') 
AND o.Order_Status='1' 
ORDER BY o.Order_Id 
例如:

 Order_id   Client_id   Total_Amount             Order_Date        Order_Time Order_Status
    120        32        60                        01/01/2013        12:44:15    1
121        32        60                        01/01/2013        12:47:51    1
122        32        90                        01/01/2013        18:16:41    1
127        32        60                        01/01/2013        18:34:31    1
128        32        90                        01/01/2013        18:35:19    1
129        32       120                        19/01/2013        8:12:04     1
130        32        90                        19/01/2013        15:33:16    0
131        33        90                        19/01/2013        15:40:03    1

我想显示从2013年1月1日12:40:00到2013年1月19日09:00:00的记录。因此,它应该显示6条记录。要编写什么查询?请尝试使用以下日期格式:
YYYY-MM-DD HH:MM:SS


您需要在WHERE子句中组合日期和时间列

WHERE DATE_ADD(o.Order_Date, INTERVAL o.Order_Time HOUR_SECOND) 
  BETWEEN '2010-01-01 16:30:00' AND '2010-01-02 17:00:00'

首先,我将类型更改为

订购日期和订购时间。

然后我写了这个查询

select o.Order_Id,c.client_name,c.client_lname,o.Total_Amount,o.Order_Date,o.Order_Time from orders as o join client as c on o.Client_id=c.Client_id where  DATE_ADD(o.Order_Date, INTERVAL o.Order_Time HOUR_SECOND) BETWEEN '2012-12-03 11:06:54' AND '2013-01-19 01:07:10'  and o.Order_Status='1' order by o.Order_Id 
成功了。这就是我所期待的结果。
感谢大家帮助我解决问题。

MYSQL默认日期格式为YYYY-MM-DD。这与您的问题有关吗?返回了什么错误?不,我对日期格式没有问题。我分别保存了日期和时间,根据时间提取记录有问题。请发布
描述客户
描述订单
Shilpa的结果-我们需要知道列的类型,这样我们就知道我们是否在处理文本字段。谢谢它帮助了我,你首先回答了:)