【问题标题】:mysqli query date intervalmysqli 查询日期间隔
【发布时间】:2016-12-13 14:51:41
【问题描述】:

我的 mysqli 数据库中有一个事件每年都会发生,我已经设置了一个查询,它将在当前事件结束后正好 1 年创建一个新事件。

我想知道我是否可以将新日期设置为不是从当前日期起正好 1 年,而是设置为一年后指定日期的日期?

例如,我的活动日期可能是 16 年 1 月 6 日星期五,但 1 年 1 月 6 日是星期六?

因为我的活动通常在一年中的第一个星期五举行,所以使用以下查询

$sql3 = 
mysqli_query($conn,"UPDATE temp_table SET
eventDate = DATE_ADD(eventDate , INTERVAL 1 YEAR)") 
or die(mysqli_error($conn,"sql3"));

就像我说的那样,这会给我一个从 eventDate 的值到今天正好 1 年的日期,但它不能保证它会是星期五,可以修改它以确保它是一年的星期五的日期?

非常感谢 卢克

【问题讨论】:

    标签: php mysqli dateinterval


    【解决方案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);
    

    DATE_FORMAT(date, '%w') 返回星期几。 0=星期日..6=星期六。 5 是星期五。

    因此,此查询添加了 5-“'%w' 的下一年日期”天。

    如果“下一年的'%w'日期”为5,则加0天,如果为4,则加1天,如果为6,则加-1天,以此类推

    【讨论】:

      猜你喜欢
      • 2011-09-02
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 2015-08-10
      • 2017-05-25
      • 2012-12-09
      • 1970-01-01
      相关资源
      最近更新 更多