因此,我试图在两个日期之间查询所有数据。mysql表上的日期字段采用这种格式:(dd- my )。所以,我用php来做这个。
我做了这样的东西:
SELECT *
FROM `sells`
WHERE date
BETWEEN '01-01-2013'
AND '04-02-2014'当然,这个日期将是变量,但是对于phpmyadmin的测试,我没有达到预期的结果。它给了我关于这个日期的所有数据,让我展示一下。
03-01-2014
03-01-2014
03-01-2014
01-02-2014
01-02-2014
03-02-2014
03-02-2014
03-02-2014
03-02-2014 当然,所有其他的数据,但它无关。
我想在一段日期之间携带所有数据,如何修复此错误?
谢谢。
添加了显示表。这是我的母语,所以。(这是一个国内系统,用于我的家庭业务。
CREATE TABLE `vendas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_cliente` int(11) NOT NULL,
`cliente` varchar(255) CHARACTER SET latin1 NOT NULL,
`produto` varchar(255) CHARACTER SET latin1 NOT NULL,
`quantidade` int(255) NOT NULL,
`valor` varchar(255) CHARACTER SET latin1 NOT NULL,
`total` varchar(255) CHARACTER SET latin1 NOT NULL,
`metodo` varchar(255) CHARACTER SET latin1 NOT NULL,
`data` varchar(255) CHARACTER SET latin1 NOT NULL,
`status` int(255) NOT NULL DEFAULT '1',
`data_pagamento` varchar(255) CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci发布于 2014-02-04 14:15:47
当您将日期存储为字符串而不是日期时,会发生这样的情况。你会质疑地狱的。
您需要将字符串日期转换为正确的格式,然后将搜索条件更改为也是正确的日期格式(YYYY DD):
WHERE STR_TO_DATE(date, "%d-%m-%Y")
BETWEEN '2013-01-01'
AND '2014-02-04'发布于 2014-02-04 14:30:31
试试这个-
SELECT *
FROM `sells`
WHERE DATE_FORMAT(<your column name>,'%m-%d-%Y') >= '01-01-2013'
and DATE_FORMAT(<your column name>,'%m-%d-%Y') <= '04-02-2014';这也能起作用--
SELECT *
FROM `sells`
WHERE <your column name> between DATE_FORMAT('01-01-2013','%m-%d-%Y')
and DATE_FORMAT('04-02-2014','%m-%d-%Y');https://stackoverflow.com/questions/21554850
复制相似问题