Mysql的时间查询以及赋值

时间:2025-02-13 18:19:17

背景:新需求在A表增加了一个completeDate 字段,需要对生产数据库的老数据补充该字段数据

执行的SQL:

UPDATE Orders SET completeDate = DATE_ADD(createdDate ,INTERVAL 20 DAY) WHERE status= 5 AND DATEDIFF(NOW(),createdDate) > 22 AND DATEDIFF(NOW(),createdDate) < 35 AND completeDate IS NULL


解析:

completeDate = DATE_ADD(createdDate ,INTERVAL 20 DAY)    //赋值为创建时间20天后的数据(DATE_ADD)

DATEDIFF(NOW(),createdDate) > 22 AND DATEDIFF(NOW(),createdDate) < 35     //在22天--35天前(DATEDIFF)


参考的博客:date_add/date_sub