gpt4 book ai didi

java - PostgreSQL Between 子句

转载 作者:行者123 更新时间:2023-11-29 13:05:04 25 4
gpt4 key购买 nike

我这里有这个示例语句:

WHERE e.modified_date::DATE between '2013-04-02'::DATE
AND '2013-04-02'::DATE

注意:
这些日期实际上是变量。

在 pgAdmin 中,运行它会得到这个示例表:

username  modified_date
Sample 2013-04-02
Sample1 2013-04-02

这是我想要的结果。

但是,从 Java 调用 proc 将不会产生任何结果。更改第二个日期将返回以前的样本表。如果日期小于第二个变量,PostgreSQL 似乎正在评估日期。我错过了什么吗?

注意:修改日期时间戳

最佳答案

列详细信息:

修改日期:TIMESTAMP

这是在 modified_date 字段中插入的实际值

修改日期
不带时区的时间戳

2013-04-02 14:05:45.8611
2013-04-02 14:09:14.5422



WHERE子句测试程序的简要说明
WHERE e.modified_date >= '2013-04-02'::TIMESTAMP 
AND e.modified_date <='2013-04-02'::TIMESTAMP

什么都不返回:

- 将 String'2013-04-02' 转换为 TIMESTAMP 数据类型将导致 '2013-04-02 00 :00:00'
- 首先,WHERE 子句验证字段 modified_date(引用值)是否大于或等于 '2013-04-02 00:00:00 ';另一方面,将返回 false
- 其次,WHERE 子句验证字段 modified_date(引用值)小于或等于 '2013-04-02 00:00:00' ;它将返回为 false

此解释仅表明当且仅当 modified_date 为正是 '2013-04-02 00:00:00'

对于这个 WHERE 子句:

WHERE e.modified_date::DATE BETWEEN '2013-04-02'::DATE
AND '2013-04-02'::DATE


modified_dateString 值转换为 DATE 数据类型将产生以下值:
修改日期TIMESTAMP = '2013-04-02 14:05:45.8611'
modified_date 作为 DATE = '2013-04-02'

修改日期TIMESTAMP = '2013-04-02 14:09:14.5422'
modified_date 作为 DATE = '2013-04-02'

字符串值STRING = '2013-04-02'
字符串值 作为DATE = '2013-04-02'

注意:
这也可以在不将 String 值转换为 DATE 数据类型的情况下完成。由我来转换 String 是为了我的验证目的。

要回答我的问题,请使用 WHERE 子句:

WHERE e.modified_date::DATE between '2013-04-02'::DATE
AND '2013-04-02'::DATE

没有返回任何东西只是我调用了使用错误 WHERE 子句的测试存储过程。

关于java - PostgreSQL Between 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com