我有一张table,如下所示:
表中有两列名为 DateFrom
以及 DateTo
.
我想从这两个日期或这两个日期之间获取行数据。e、 如果我想从 2018-12-27
至 2019-01-10
它应该返回两行
HPID 1
以及 6
-因为两行都在上述日期之内。
现在我不知道sql查询应该是什么。我试过了 BETWEEN
但没有结果。
实际上,我正在开发一个小型酒店管理系统,表格显示了特定日期之间任何酒店的成本。因此,当用户搜索两个日期之间的日期酒店时,应该显示与这些日期重叠的成本。
datefrom和dateto不是datetime。
4条答案
按热度按时间1mrurvl11#
可能需要铸造,请使用下面的查询
dgenwo3n2#
首先确保你的日期是单引号
有一点不清楚,那就是您试图通过这个查询实现什么。
s6fujrry3#
这应该起作用:
l3zydbqr4#
stefan taseki的回答几乎是正确的,但没有正确处理重叠。交换查询中的开始日期和结束日期,它应该完成以下工作:
p、 你应该把你的日期储存在
datetime
柱。日期不是文本。如果你不这样做,你会在a)排序,b)比较,和c)以不同的格式呈现日期上遇到问题。这个datetime
数据类型存在有充分的理由,您应该使用它。现在可以考虑更改数据库。p、 另外,你的数据也是非标准化的。country、city、hotelname、hotelcode和hotelstar都应位于单独的“hotel”表中(country和city也应位于不同的表中),然后仅在此costs表中的hotel id上使用外键。否则,您将不断重复只应输入一次的数据。如果您没有意识到这一点,我建议您学习关系数据库设计和规范化。