dsij89625 2013-03-12 05:35
浏览 61

Mysql日期更新无法正常工作

I have one issue while updating mysql table. I have two fields real_date (Type : varchar(20)), event_date(Type: date()). Below are few values

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

I want to update event_date to as shown above. Fetch month and date from real_date and keep year as 1971. I am using below queries but it doesn't work Can you please help me.

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'

But none of above works. Please help me.

  • 写回答

4条回答 默认 最新

  • dongzangchui2072 2013-03-12 05:37
    关注

    use OR

    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'
    
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度