gpt4 book ai didi

MySQL STR_TO_DATE 与 DATE_FORMAT

转载 作者:行者123 更新时间:2023-11-30 23:55:35 25 4
gpt4 key购买 nike

我有一个名为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 函数。现在看来我必须更新整个网站。

谢谢。

最佳答案

DATE_FORMAT 将 DATE 转换为 STRING。

STR_TO_DATE 将 STRING 转换为 DATE。

来自 MySQL 文档

关于MySQL STR_TO_DATE 与 DATE_FORMAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com