【问题标题】:Add 30 days for date in db为 db 中的日期添加 30 天
【发布时间】:2010-12-09 05:23:51
【问题描述】:

我的数据库中有发布日期和发布日期。 目前它们的日期相同。

我如何更改它(在 mysql 插入期间),所以发布日期是发布日期后 30 天。

我正在使用 $pubDate

谢谢

【问题讨论】:

    标签: php sql mysql date format


    【解决方案1】:

    你可以使用DATE_ADD():

    DATE_ADD(my_date, INTERVAL 30 DAY)
    

    【讨论】:

    • 你的时间间隔中的错字,应该是:DATE_ADD(my_date, INTERVAL 30 DAY) -- DAY 在mysql中不是复数
    • 语法糖:你也可以用my_date+Interval 30 DAY代替date_add()代替date_sub()my_date-Interval 30 DAY
    • 在我的 php 中我有 mysql insert.....VALUES ('$pubDate', 'DATE_ADD($pubDate, INTERVAL 30 DAY)').... $pubDate 是日期时间类型顺便说一句。目前它给了我 0000-00-00 00:00:00 怎么了?
    • 你在错误的位上加了引号:VALUES ('$pubDate', DATE_ADD('$pubDate', INTERVAL 30 DAY))
    • 效果很好,即它添加了正确的日期,尽管 Mysql 给了我注意:遇到格式不正确的数值。我需要担心这个吗?我可以“压制”通知吗?我现在会接受这个答案;)
    【解决方案2】:

    在 php 中,在插入之前可以使用 strtotime(): 如果 publishDown 日期是时间戳:

    $publishDown = strtotime("+30 天",$publishDown);

    否则您可能必须使用mktime 才能获得正确的格式

    【讨论】:

    • 如果您正在从数据库中读取日期并显示它,我会说使用您的服务器端语言来操作日期。存储数据时,请使用数据库的内部函数进行任何数据操作。
    • 我给了你一个upvote,因为我认为这是一个完全合理的问题解决方案,事实上,它可能比使用iKnowKungFoo建议的数据库内部函数更好,因为每个该死的数据库都有不同的内部函数做同样该死的事情。
    猜你喜欢
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多