我想使用 sysdate 执行查询,例如:
select up_time from exam where up_time like sysdate
这在 Oracle 中是可能的。
但是,似乎 PostgreSQL 不支持 sysdate。我在 postgres 文档中找不到 sysdate。PostgreSQL 中 sysdate 的替代品是什么?
我想使用 sysdate 执行查询,例如:
select up_time from exam where up_time like sysdate
这在 Oracle 中是可能的。
但是,似乎 PostgreSQL 不支持 sysdate。我在 postgres 文档中找不到 sysdate。PostgreSQL 中 sysdate 的替代品是什么?
SYSDATE
是 Oracle 唯一的功能。
ANSI 标准定义current_date
或current_timestamp
受Postgres 支持并记录在手册中:http
://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
(顺便说一句:Oracle 也支持CURRENT_TIMESTAMP
)
您应该注意current_timestamp
,statement_timestamp()
和之间的区别clock_timestamp()
(手册中对此进行了说明,请参见上面的链接)
这部分where up_time like sysdate
根本没有任何意义。在 Oracle 和 Postgres 中都没有。如果你想从“今天”获取行,你需要这样的东西:
select up_time
from exam
where up_time = current_date
请注意,在 Oracle 中,您可能希望trunc(up_time) = trunc(sysdate)
摆脱 Oracle 中始终包含的时间部分。
NOW()是 Postgres 中 Oracle Sysdate 的替代品。
试试“ Select now() ”,它会给你系统时间戳。
以下函数可用于获取 PostgreSQL 中的当前日期和/或时间:
CURRENT_TIME
CURRENT_DATE
CURRENT_TIMESTAMP
例子
SELECT CURRENT_TIME;
08:05:18.864750+05:30
SELECT CURRENT_DATE;
2020-05-14
SELECT CURRENT_TIMESTAMP;
2020-05-14 08:04:51.290498+05:30
您可能想要使用statement_timestamp()。这给出了执行语句时的时间戳。而NOW()
并CURRENT_TIMESTAMP
给出事务开始时的时间戳。
手册中的更多详细信息