mysqli查询日期间隔

时间:2016-12-13 14:51:41

标签: php mysqli dateinterval

我的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年的日期,但它不保证它将是星期五,可以修改以确保它是星期五的一年的日期?

非常感谢 路加

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天等。