我在更新 mysql 表时遇到一个问题。我有两个字段 real_date (类型:varchar(20))、event_date(类型:date())。以下是一些值
real_date event_date event_date(Need to b updated.)
1985-03-20 0000-00-00 1971-03-20
1989-08-20 0000-00-00 1971-08-20
1993-04-30 0000-00-00 1971-04-30
我想将 event_date 更新为如上所示。从 real_date 中获取月份和日期,并将年份保留为 1971 年。我正在使用以下查询,但它不起作用,您能帮助我吗?
Query1 : Update table set event_date= STR_TO_DATE(concat('1971','-',DATE_FORMAT(real_date, "%m-%d")),'%Y-%m-%d') where real_date IS NOT NULL AND real_date != '0000-00-00' AND real_date <> '' AND event_date='0000-00-00'
Query2 : Update table set event_date= STR_TO_DATE(concat('1971','-',SUBSTR(real_date, 6, 5)),'%Y-%m-%d') where real_date IS NOT NULL AND real_date != '0000-00-00' AND real_date <> '' AND event_date='0000-00-00'
Query3 : Update table set event_date=concat('1971-',DATE_FORMAT(real_date, "%m-%d")) where real_date IS NOT NULL AND real_date != '0000-00-00' AND real_date <> '' AND event_date='0000-00-00'
但是以上都不起作用。请帮助我。
最佳答案
使用或
UPDATE TableName
SET event_date = CONCAT('1971-', DATE_FORMAT(real_date, '%m-%d'))
WHERE real_date IS NOT NULL OR
real_date != '0000-00-00' OR
real_date <> '' OR
event_date = '0000-00-00'
关于php - Mysql 日期更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15354034/