Mysql 如何在两个日期之间选择记录&;时代?
我有两张桌子<代码>客户(客户id、客户名称、客户名称)和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、总金额、订单日期、订单时间、订单状态)
订单类型\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的结果-我们需要知道列的类型,这样我们就知道我们是否在处理文本字段。谢谢它帮助了我,你首先回答了:)