我有一个带日期和时间列(YYYY-MM-DD HH:MM:SS格式)的Posgres表。Postgres:找到日期之间包括日期本身
我需要找到某个日期之间的行,包括日期本身。
我目前使用这样的:
SELECT x,y,z FROM table WHERE dateandtime between
DATE('".date('Y-m-d H:i:s',strtotime($from))."') and
DATE('".date('Y-m-d H:i:s',strtotime($to))."')
但这仅显示的日期,所以如果我选择:
从15/02/2015 - 15/02/2015到。我没有看到任何东西,而不是看到第15天。
同样的事情,如果我这样做:
从14/02/2015 - 15/02/2015到。 我看不到15日,但只有14日。
所以我的解决方法是在PHP中检查,如果from
和to
日期是相同的,那么只能找到那一天。但这不是一个好的解决方案,我仍然有问题的第二部分。
编辑的要求
这是生成的查询:
SELECT x,y,z FROM table WHERE dateandtime between
DATE('2015-01-15 00:00:00') and
DATE('2015-01-15 00:00:00')
所以我增加了一个如果:
SELECT x,y,z FROM table WHERE dateandtime BETWEEN
'".date('Y-m-d H:i:s',strtotime($from.' 00:00:00'))."' AND
'".date('Y-m-d H:i:s',strtotime($from.' 23:59:59'))."'
这是结果:
SELECT x,y,z FROM table WHERE dateandtime BETWEEN
'2015-01-15 00:00:00' AND
'2015-01-15 23:59:59'
我有同样的问题,因为如果只检查from
和to
是否相同。如果他们不是,我还有一天超出范围。
新增sqlfiddle
正如你可以看到jannuary第五届不采取:http://sqlfiddle.com/#!9/d50bd/1
我我只会给你一些关于sql注入的建议,请使用准备好的语句。 –
向我们提供您的表格,其中包含一些示例数据(www.sqlfiddle.com),并将链接返回此处 –
您也可以回显并发布生成的查询吗? –