【发布时间】:2014-10-29 00:08:49
【问题描述】:
我有一张桌子,名为schedules。它有三列day、month、year,即计划所针对的日/月/年。这里没有时间戳。我选择这种格式是为了检索 10 月或 2014 年的所有时间表。
但是,是否可以检索给定范围的时间表,例如从 2014 年 9 月 10 日到 2014 年 10 月 9 日?问题是,如果我使用
WHERE 'day' > 10 AND 'day' < 9 ...
不会返回任何内容,因为即使 10 月 (10) 月大于 9 月 (9) 月,该月的天数也会错过!
有没有办法或者我还需要包含带有时间戳的第四个date 列?
【问题讨论】:
-
为什么在单独的列中?,您可以在时间戳/日期时间字段中提取日/月/年,并且可以轻松比较日期范围。
-
这应该都在一个日期字段中,然后使用适当的日期函数,而不是试图将一些可怕的混乱混在一起。改用您的数据库设计,这样的查询是微不足道的。
-
是的。合理的逻辑,但不幸的结论。日期和日期时间数据类型的存在是有原因的!