我的表中有yyyy-mm-dd HH:MM:SS
格式的日期字段,希望获取11-july-2020
(包括14-july-2020
(之间的记录,但14th
上缺少记录。尝试>= && <
SYMMETRIC
,但没有一个工作。
当前使用CCD_ 7。它不包括14日创建的记录。
我想你想要:
where col >= '2020-07-11' and col < '2020-7-15'
或者,使用时间戳来表达这一点:
where col::timestamp >= '2020-07-11'::timestamp and
col::timestamp < '2020-07-14'::timestamp + interval '1 day'
请注意,高端比2020-07-14晚一天,因此您可以获得当天的所有时间。
您也可以将between
用作:
where col::date between '2020-07-11'::date and '2020-07-14'::date
但我不建议将between
与日期/时间数据类型一起使用——正是因为时间组件存在问题。
如果字段的格式为yyyy-mm-dd HH:MM:SS
,则它是时间戳字段,而不是日期字段。正如@Gordon所展示的那样,这对需要进行的比较产生了很大的影响。如果将时间戳与日期(2020年7月14日(进行比较,则日期将变为时间为00:00:00:的时间戳
select '07/14/2020'::timestamp;
timestamp
---------------------
2020-07-14 00:00:00
这意味着你将错过13/14午夜之后的14日的时间戳。