gpt4 book ai didi

mysql - 比较 2 个日期(字符串)时结果无效

转载 作者:行者123 更新时间:2023-11-29 23:40:07 25 4
gpt4 key购买 nike

我的 MySQL 数据库中有一个名为 test 的表。下面是它的创建方式。

CREATE TABLE `test` (
`update_date` varchar(10) NOT NULL,
`value` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

以下是其数据。

enter image description here

我按照 here 所选答案中的描述运行以下查询

SELECT SUM(`value`) FROM `test`
WHERE STR_TO_DATE(`update_date`, '%d-%m-%Y') BETWEEN '01-10-2014' AND '31-10-2014'

这应该返回 1800,但它却返回了 NULL。这是为什么?我怎样才能得到正确的答案?

非常重要:我必须使用String作为Date,因为我必须将日期保存在dd-mm-yyyy中code> 格式和 mysql Date 不接受。

最佳答案

试试这个:

 SELECT SUM(`value`) FROM `test`
WHERE STR_TO_DATE(`update_date`, '%d-%m-%Y')
BETWEEN STR_TO_DATE('01-10-2014', '%d-%m-%Y') AND STR_TO_DATE('31-10-2014', '%d-%m-%Y')

或者你也可以这样做:

SELECT SUM(`value`) FROM `test`
WHERE STR_TO_DATE(`update_date`, '%d-%m-%Y')
BETWEEN '2014-10-01' AND '2014-10-31' -- in Y-m-d

两个查询都应返回 1800

请注意STR_TO_DATE()返回 DATETIME value ,格式为Y-m-d

关于mysql - 比较 2 个日期(字符串)时结果无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26200805/

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