0

我创建了一个表格,在其中输入了酒店的价格以及这些价格有效的日期。如果我在特定酒店的房价中选择特定日期,我希望以另一种形式显示特定日期,该日期属于任何日期板块,因为每个日期板块都有不同的酒店房价

我试过这个

select * from test_hotelrates where Datefrom >= convert(date, '2013-10-01', 103) 
and Dateto <= convert(date, '2013-10-31', 103) and Season = 'Season'

但它不符合我的需要

4

2 回答 2

0

更改您的查询如下:

select * from test_hotelrates where convert(varchar(10),Datefrom,103) >= convert(varchar(10), '2013-10-01', 103) 
and convert(varchar(10),Dateto,103) <= convert(varchar(10), '2013-10-31', 103) and Season = 'Season'

因为两种格式应该相同。希望这对你有用

于 2013-09-19T08:24:03.027 回答
0

它不起作用,因为您使用 2 个不同的日期进行比较。在此示例中,您需要 10 月所有天的费率。我假设有人想在酒店住整整一个月。但我认为您想检查该时间段内的每一天,以了解当前的费率。因为在那个时期,利率可能会发生变化。

您的查询将仅返回 10-01-2013 到 10-31-2013 时间范围内的费率。

我认为您将需要进行不同的查询或多次运行此查询

select * from test_hotelrates where Datefrom <= convert(date, '2013-10-01', 103) 
and Dateto >= convert(date, '2013-10-01', 103) and Season = 'Season'

select * from test_hotelrates where Datefrom <= convert(date, '2013-10-02', 103) 
and Dateto >= convert(date, '2013-10-02', 103) and Season = 'Season'

select * from test_hotelrates where Datefrom <= convert(date, '2013-10-03', 103) 
and Dateto >= convert(date, '2013-10-03', 103) and Season = 'Season'

ETC...

于 2013-09-19T08:14:29.313 回答