Php mysqli查询日期间隔
我的mysqli数据库中有一个事件,每年都会重复发生,我设置了一个查询,在当前事件结束后整整一年创建一个新事件 我想知道是否可以将新日期设置为从当前日期算起不超过1年,而是设置为一年后某一天的日期 例如,我的活动日期可能是1月16日星期五,但1年1月6日是星期六 原因是我的活动通常在一年中的第一个星期五举行,因此使用以下查询Php mysqli查询日期间隔,php,mysqli,dateinterval,Php,Mysqli,Dateinterval,我的mysqli数据库中有一个事件,每年都会重复发生,我设置了一个查询,在当前事件结束后整整一年创建一个新事件 我想知道是否可以将新日期设置为从当前日期算起不超过1年,而是设置为一年后某一天的日期 例如,我的活动日期可能是1月16日星期五,但1年1月6日是星期六 原因是我的活动通常在一年中的第一个星期五举行,因此使用以下查询 $sql3 = mysqli_query($conn,"UPDATE temp_table SET eventDate = DATE_ADD(eventDate , IN
$sql3 =
mysqli_query($conn,"UPDATE temp_table SET
eventDate = DATE_ADD(eventDate , INTERVAL 1 YEAR)")
or die(mysqli_error($conn,"sql3"));
就像我说的,这将给我一个从eventDate值算起1年后的日期,但它不能保证它是星期五,是否可以修改它以确保它是一年后的星期五
非常感谢
卢克试试这个:
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);
日期格式(日期,'%w')返回星期几。0=星期天..6=星期六。星期五
因此,此查询将添加5-“'%w'的下一年日期”天
如果“'%w'的下一年日期”为5,则增加0天;如果为4,则增加1天;如果为6,则增加-1天,以此类推。尝试以下方法:
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);
日期格式(日期,'%w')返回星期几。0=星期天..6=星期六。星期五
因此,此查询将添加5-“'%w'的下一年日期”天
如果“下一年日期的“%w”为5,则加0天;如果为4,则加1天;如果为6,则加-1天,以此类推