gpt4 book ai didi

Mysql 语法错误 (DATE_SUB(REPLACE(CURDATE(), '-' , '' ), INTERVAL 7 DAY) <= SPLIT_STR(started_on, ' - ' , 1);

转载 作者:行者123 更新时间:2023-11-29 11:38:30 32 4
gpt4 key购买 nike

我的日期格式是:YYYYMMDD

CURDATE() returns: YYYY-MM-DD

我想要start_on的每周记录,但使用mysql失败了,所以尝试过:

SELECT SPLIT_STR(started_on, ' - ', 1), failed FROM 1_results WHERE (DATE_SUB(REPLACE(CURDATE(), '-', ''), INTERVAL 7 DAY) <= SPLIT_STR(started_on, ' - ', 1);

但是出现错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 30' at line 2

也尝试过DATEDIFF,但没有成功。

单独运行 SPLIT_STR(started_on, ' - ', 1) 和 REPLACE(CURDATE(), '-', '') 工作正常,但上述查询失败。

最佳答案

考虑到 started_on 是一个字符串,最好的办法是使用 STR_TO_DATE 将其转换为正确的 MySQL 日期。函数,像这样:

STR_TO_DATE(started_on, '%Y%m%d')

这将返回一个正确的日期,您可以使用它轻松进行比较。唯一需要更改的是从当前日期减去 7 天的部分。你真的太复杂了,你只需要:

DATE_SUB(CURDATE(), INTERVAL 7 DAY)

所以你的整个查询就变成了:

SELECT SPLIT_STR(started_on, ' - ', 1), failed FROM 1_results 
WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= STR_TO_DATE(started_on, '%Y%m%d') ;

关于Mysql 语法错误 (DATE_SUB(REPLACE(CURDATE(), '-' , '' ), INTERVAL 7 DAY) <= SPLIT_STR(started_on, ' - ' , 1);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36232752/

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