我有一个名为test的mysql表,结构代码如下
CREATE TABLE IF NOT EXISTS `test` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`assigned_date` date NOT NULL
) ENGINE=InnoDB
该表包含以下数据:
INSERT INTO `test` (`id`, `name`, `assigned_date`) VALUES
(0, 'A', '2012-12-23'),
(0, 'B', '2012-12-25');
现在的问题是,当我运行以下查询时,它没有返回任何行。
SELECT name
FROM test
WHERE
DATE_FORMAT(assigned_date, '%m/%d/%Y') >= '12/01/2012'
AND
DATE_FORMAT(assigned_date, '%m/%d/%Y') <= '01/02/2013'
但是当我使用以下命令时,它会按预期返回两行。
SELECT name
FROM test
WHERE
assigned_date >= STR_TO_DATE('12/01/2012', '%m/%d/%Y')
AND
assigned_date <= STR_TO_DATE('01/02/2013', '%m/%d/%Y')
有什么区别 ?为什么DATE_FORMAT不起作用?
请帮忙解决这个问题我已经在一个站点中使用了 date_format 函数。现在看来我必须更新整个网站。
谢谢。