2015-05-09 281 views
0

我想比較一個日期時間從SQL和今天的日期。 sql中的datetime例如是2015/05/09 12:00:00,當前日期是2015/05/09。我想比較這些東西,如果它們是平等的,但是整整一天,所以時間是一個問題。我有以下查詢。比較日期和日期時間

$q1="SELECT reservations.reservation_id, reservations.room_id, room.room_rate, reservations.arrival_date, reservations.departure_date, 
          meals.meal_rate, room.room_rate, roomtype.max_persons, 
          CONCAT(clients.first_name,' ',clients.last_name)as name 

        FROM reservations, clients, meals, room, roomtype 
        WHERE reservations.room_id=room.room_id AND reservations.client_id=clients.client_id AND room.roomtype_id=roomtype.roomtype_id 
        AND reservations.meals=meals.meal_id AND reservations.arrival_date=CURDATE() 
        GROUP BY reservation_id 
        "; 

reservations.arrival_date = CURDATE()這隻在12:00:00點時相等。我希望這是相等的一整天。實際上,我想比較,如果這兩個日期是相等的沒有時間,但我的數據庫必須是與日期時間... 有沒有人有想法? thanx

回答

0

您應該學會使用標準的join語法。簡單的規則:從不from子句中使用逗號。

回答你的問題是,無論是date()功能(或類似的東西):

where date(reservations.arrival_date) = CURDATE() 

或不等式:

where (reservations.arrival_date >= CURDATE() and 
     reservations.arrival_date < date_add(CURDATE(), interval 1 day) 
    ) 

第二個實際上是首選,因爲它可以利用的索引reservations(arrival_date)

+0

實際上這是一箇舊的php代碼,我想添加something.now我使用join.thnx無論如何。 你的第二個解決方案也適用,但我只是認爲更簡單$ today = date(「Y-m-d 12:00:00」);然後比較到期日與今天! – stavros

+0

@stavros。 。 。如果您始終知道時間組件恰好是中午,那麼這將起作用。 –