Возвращает данные поля date в качестве текущей даты

#postgresql

#postgresql

Вопрос:

Я хочу вернуть все записи, которые введены сегодня, не имеет значения, когда я использую это для вставки

 INSERT INTO hangfire.job(stateid, statename, invocationdata, arguments, createdat, expireat, updatecount)
VALUES (44, 'Schedule', 'Test Invocation data', 'Test arguments', now()::timestamp, null, 0);
  

И используйте это для извлечения данных, но оно ничего не возвращает, только поля

 SELECT * From hangfire.job WHERE createdat = now()::timestamp;
  

Комментарии:

1. Не связано, но: now()::timestamp может быть упрощено до localtimestamp

Ответ №1:

Временная метка содержит время (как указано в названии), если вы хотите проигнорировать это время, используйте date :

 SELECT * 
From hangfire.job 
WHERE createdat::date = current_date;
  

Если у вас есть индекс в createdat, указанный выше, этот индекс использоваться не будет. Если это необходимо по соображениям производительности, используйте условие диапазона:

 SELECT * 
From hangfire.job 
WHERE createdat >= current_date
  AND createdat < current_date   1;