gpt4 book ai didi

MySQL:ON DUPLICATE KEY UPDATE 给出截断不正确的日期值错误

转载 作者:行者123 更新时间:2023-11-29 20:35:17 25 4
gpt4 key购买 nike

我的查询应该很简单...

INSERT INTO email_final_list
(E_mail, Title, First_Name, Last_Name, ZIP_Code, AddMethod, Update_Date, Status)
SELECT
DISTINCT E_mail,
Title,
First_Name,
Last_Name,
ZIP_Code,
CASE WHEN AddMethod IS NULL THEN 'Opera' ELSE 1 END as AddMethod,
Update_Date,
Status
FROM guest_profiles
WHERE E_mail NOT LIKE '' AND ifnull(Update_Date, '') <> '' AND STR_TO_DATE(Update_Date,'%d/%m/%Y') > CURDATE() - INTERVAL 5 DAY
ON DUPLICATE KEY UPDATE
email_final_list.E_mail = guest_profiles.E_mail,
email_final_list.Title = guest_profiles.Title,
email_final_list.First_Name = guest_profiles.First_Name,
email_final_list.Last_Name = guest_profiles.Last_Name,
email_final_list.ZIP_Code = guest_profiles.ZIP_Code,
email_final_list.AddMethod = guest_profiles.AddMethod,
email_final_list.Status = guest_profiles.Status,
email_final_list.Update_Date = guest_profiles.Update_Date

两个表上的“更新日期”字段都是 VarChar(不知道为什么,但这无法更改)。但是当我运行这个时,它会返回

[Err] 1292 - Truncated incorrect date value: '11/4/2013 00:00:00'

真正奇怪的是,如果我单独运行 SELECT 部分,我不会得到任何结果。

数据库是继承的,因此无法更改 - 架构和名称到处都是,但不幸的是,我必须使用它。

有人知道我在这里做错了什么吗?

谢谢

编辑:确切的代码是

INSERT INTO `email-final-list`
(`E-mail`, Title, `First Name`, `Last Name`, `ZIP Code`, AddMethod, `Update Date`, `Status`)
SELECT
DISTINCT `E-mail`,
Title,
`First Name`,
`Last Name`,
`ZIP Code`,
CASE WHEN AddMethod IS NULL THEN 'Opera' ELSE 1 END as AddMethod,
`Update Date`,
`Status`
FROM `guest-profiles`
WHERE `E-mail` NOT LIKE '' AND ifnull(`Update Date`, '') <> '' AND STR_TO_DATE(`Update Date`,'%d/%m/%Y') > CURDATE() - INTERVAL 5 DAY
ON DUPLICATE KEY UPDATE
`email-final-list`.`E-mail` = `guest-profiles`.`E-mail`,
`email-final-list`.Title = `guest-profiles`.Title,
`email-final-list`.`First Name` = `guest-profiles`.`First Name`,
`email-final-list`.`Last Name` = `guest-profiles`.`Last Name`,
`email-final-list`.`ZIP Code` = `guest-profiles`.`ZIP Code`,
`email-final-list`.AddMethod = `guest-profiles`.AddMethod,
`email-final-list`.`Status` = `guest-profiles`.`Status`,
`email-final-list`.`Update Date` = `guest-profiles`.`Update Date`

但我根本无法更改数据库字段。

最佳答案

您似乎正在发送日期时间,而您的字段是日期。也许您应该将表结构从date更改为datetime

关于MySQL:ON DUPLICATE KEY UPDATE 给出截断不正确的日期值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38824299/

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