【问题标题】:Select Before The Date选择日期之前
【发布时间】:2011-01-19 15:41:32
【问题描述】:

我有一个日期,说它叫 $date。我想要一个 mysql_query 在我的 $date 之前搜索选定的几周、几天甚至几个月。这可能吗?我的解释不是最好的,但我确实需要一个答案并且不知道如何正确地质疑它。

【问题讨论】:

    标签: php sql mysql date


    【解决方案1】:

    你可以使用mysql的区间函数吗?

    "select * from table where `date` BETWEEN DATE_SUB(".$date.",INTERVAL 15 DAY ) AND CURDATE( )
    

    这将返回过去 15 天的记录,如果您想要正好 15 天的记录,您可以使用 = insted of between,或者将其修改为几天、几个月等。

    编辑:如果您使用 php 的 time() 记得在查询中使用 FROM_UNIXTIME($phpdate)

    【讨论】:

      【解决方案2】:

      我在 SQL 中有一个解决方案,如果它对你有帮助,请采纳它

      Day($date) 为您提供变量中的日期 Month($date) 为您提供变量中的月份 Year($date) 为您提供变量中的年份

      使用简单的 where 条件,现在您可以搜索详细信息

      【讨论】:

        【解决方案3】:

        您可以使用DATE_ADDDATE_SUB 函数来修改日期,mysql 可以理解使用日期的 BETWEEN 子句。但是,您也可以像这样使用TIMESTAMPDIFF 函数:

        "SELECT foo FROM table WHERE TIMESTAMPDIFF(DAY, dateField, '$date') < '$desired_days'"
        

        【讨论】:

        • 我不明白,$desired_days 是否像“1”一样工作,还是像“01-01-2011”一样工作
        • 另外,我认为我的日期格式不正确。我使用的日期是从 $GET 收集并转换为包含“19-01-2011”的 $date 的日期
        • $desired_days 将是几天前,而不是日期。您可以使用其他人建议的日期格式化方法来解决该问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-20
        • 2013-12-25
        相关资源
        最近更新 更多