簡體   English   中英

Mysql查詢使用兩個日期之間檢索記錄

[英]Mysql query to retrieve record using between for two dates

我有一個要求,我很困惑如何編寫查詢。 我是這家公司的新手,所以請幫助我

用戶將選擇以下日期:

例:fromDate: 2013-08-02 toDate: 2013-09-03 (YYYY-MM-DD)

id  resort_id   room_id Date1       Date2       price
5   35      45          2013-11-01  2013-11-30  3000.00
6   35      50          2013-07-25  2013-08-25  2000.00
7   35      541         2013-07-25  2013-08-25  4000.00
8   35      541         2013-08-26  2013-09-26  4000.00

現在我應該根據房間ID獲得每個日期或價格總和的基於價格的結果

預期結果

id  resort_id   room_id     Date1       Date2       price
6   35      50              2013-07-25  2013-08-25  2000.00
7   35      541             2013-07-25  2013-08-25  4000.00
8   35      541             2013-08-26  2013-09-26  4000.00

要么

id  resort_id      room_id  price
6   35             50       2000.00
7   35             541      8000.00
SELECT * FROM lr_price_peak_rates  WHERE  `from_date`>='2014-04-08' AND `to_date`<='2014-04-30' 

嘗試上面的查詢它可以正常工作

試試這個查詢

SELECT * FROM `rooms` WHERE "2013-08-02" between Date1 AND Date2 UNION 
SELECT * FROM `rooms` WHERE "2013-09-03" BETWEEN Date1 AND Date2

它是一個單一的查詢。 將其分為兩行以便於閱讀。 我很確定這個查詢缺少一些東西。 我需要一個更大的測試集來驗證。 這不會選擇中間案例。 使用用戶選擇的日期更改第一個日期。

試試這個查詢

SELECT
  id,
  resort_id,
  room_id,
  Date1,
  Date2,
  SUM(price) AS Total_Price
FROM
  MyTable
WHERE Date1> '2013-02-08' AND Date2 < '2013-02-09'

嘿試試這個(sql server)

SELECT room_id,SUM(price)FROM @table WHERE date1> ='07/25 / 2013'and date2 <='09/26/2013'GROUP BY room_id

select * from table_name where date1 > '08/02/2013' AND date2 < '09/02/2013' ORDER BY date1 ASC, price ASC

SELECT * FROM rooms WHERE日期在Date1和Date2之間UNION SELECT * FROM rooms WHERE date BETWEEN Date1 AND Date2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM