php - Mysql 日期更新不起作用

标签 php mysql sql sql-update

我在更新 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/

相关文章:

php - MySQL : Get user details using nested relational table

php - 在选择列表中搜索?

java - SQL 速度慢,需要帮助。我应该走进内存吗?

mysql - 如何在 SQL 脚本中使用过程?

sql - 使用 Google BigQuery 上的开始/结束日期优化活跃帐户查询

mysql - 是否可以找到最近n天内哪些表有新数据?

java - 让 PHP 与 Java 对话的快速而肮脏的方法是什么?

php - 未捕获的 MongoDB\Driver\Exception\ConnectionException : $or must be an array - PHP

php - 如何在 MySql 中添加 Varchar 复选框值?

Mysql 多对多关系