【问题标题】:Selecting date range withinthe next 14 days选择未来 14 天内的日期范围
【发布时间】:2012-11-06 04:29:26
【问题描述】:

我正在使用以下 mySQL 查询来选择 date_start 在未来 14 天内的条目,大部分情况下它工作正常,但不包括“今天”的条目

SELECT * , DATE_FORMAT( date_start,  ' %d.%m.%Y' ) AS date_formatted
FROM calendar_event
WHERE Date_start
BETWEEN NOW( ) 
AND DATE_ADD( NOW( ) , INTERVAL 14 
DAY ) 
AND amountpaid + amountpaid2 + amountpaid3 < amount
AND amountpaid > 0 

任何想法我如何使它也显示与今天日期安排的条目

非常感谢

【问题讨论】:

  • now() 正在创建当前时间,例如2012-11-17 19:58:00,但是你想要的是 2012-11-17 00:00:00,所以使用 date(now())

标签: php mysql sql date select


【解决方案1】:

您可以使用DATE_FORMAT,因此您只能按日期而不是小时和分钟进行比较,这是错误的情况,因为它与从 00:00 开始的几个小时之前的当前时间进行比较

【讨论】:

  • 假设您的数据库行日期类似于 Y-m-d 00:00:00
【解决方案2】:
SELECT * , DATE_FORMAT( date_start,  ' %d.%m.%Y' ) AS date_formatted
FROM calendar_event
WHERE Date_start
BETWEEN CURDATE() 
AND DATE_ADD( CURDATE() , INTERVAL 14 DAY ) 
AND amountpaid + amountpaid2 + amountpaid3 < amount
AND amountpaid > 0

除上午 12:00 以外的任何时间,NOW() 返回的值都将大于当天上午 12:00。

【讨论】:

    【解决方案3】:

    你试试这个

    SELECT * , DATE_FORMAT( date_start, ' %d.%m.%Y' ) AS date_formatted FROM calendar_event WHERE Date_start BETWEEN GETDATE() AND DATE_ADD(GETDATE()+14) AND amountpaid + amountpaid2 + amountpaid3 < amount AND amountpaid > 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2020-03-22
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多