Подтвердить что ты не робот

Что такое PostgreSQL эквивалент SYSDATE от Oracle?

Я хочу выполнить запрос с помощью sysdate, например:

select up_time from exam where up_time like sysdate

что возможно в Oracle.

Однако, похоже, что PostgreSQL не поддерживает sysdate. Я не мог найти sysdate в документации postgres. Что такое замена sysdate в PostgreSQL?

4b9b3361

Ответ 1

SYSDATE - это только функция Oracle.

Стандарт ANSI определяет current_date или current_timestamp, который поддерживается Postgres и задокументирован в руководстве:
http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT

(Btw: Oracle поддерживает current_timestamp)

Обратите внимание на разницу между current_timestamp, statement_timestamp() и clock_timestamp() (что объясняется в руководстве, см. ссылку выше)


Это утверждение:

<я > select up_time from exam where up_time like sysdate

Не имеет никакого смысла. Ни в Oracle, ни в Postgres. Если вы хотите получать строки из "сегодня", вам нужно что-то вроде:

select up_time 
from exam 
where up_time = current_date

Обратите внимание, что в Oracle вы, вероятно, захотите trunc(up_time) = trunc(sysdate) избавиться от временной части, которая всегда включена в Oracle.

Ответ 2

СЕЙЧАС() - замена Oracle Sysdate в Postgres.

Попробуйте " Выбрать сейчас() ", это даст вам системную метку времени.

Ответ 3

Вы можете использовать Statement_timestamp(). Это дает метку времени, когда оператор был выполнен. Принимая во внимание, что NOW() и CURRENT_TIMESTAMP дают метку времени, когда транзакция началась.

Подробнее в руководстве