我的mysqli数据库中有一个事件是由于每年都会重新发生,我已经设置了一个查询,它将在当前事件结束后的1年内创建一个新事件。
我想知道我是否可以将新日期设定为距离当前日期不是一年,而是指定日期为一年?
例如我的活动日期可能是1月6日星期五,但是1月6日的1年是星期六?
原因是我的活动通常在一年的第一个星期五举行,所以使用以下查询
$sql3 =
mysqli_query($conn,"UPDATE temp_table SET
eventDate = DATE_ADD(eventDate , INTERVAL 1 YEAR)")
or die(mysqli_error($conn,"sql3"));
就像我说的那样,我会从eventDate的价值给出一个完整的1年的日期,但它不保证它将是星期五,可以修改以确保它是星期五的一年的日期?
非常感谢 路加
答案 0 :(得分:0)
试试这个:
UPDATE temp_table SET eventDate =
DATE_ADD(DATE_ADD(eventDate,INTERVAL 1 YEAR),
INTERVAL 5 - (DATE_FORMAT(DATE_ADD(eventDate, INTERVAL 1 YEAR),'%w')) DAY);
DATE_FORMAT(日期,'%w')返回星期几。 0 = Sunday..6 =星期六。 5月是星期五。
因此,此查询会添加5 - "'%w'明年的日期"天。
如果"'%w'明年的日期"是5,它增加0天,如果4,它增加1天,如果6,它增加-1天等。