我创建了一张表格,其中我输入了酒店的价格,其中包含日期,这些日期的有效日期。如果我选择特定酒店房价的特定日期,我想要的另一种形式应该显示特定日期,因为每个日期板都有不同的酒店价格
我试过这个
select * from test_hotelrates where Datefrom >= convert(date, '2013-10-01', 103)
and Dateto <= convert(date, '2013-10-31', 103) and Season = 'Season'
但根据我的需要它不起作用
答案 0 :(得分: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'
等等...
答案 1 :(得分: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'
因为两种格式都应该相同。希望这对你有用