Вы объявляете свой параметр baselineDate
как date
:
CREATE OR REPLACE FUNCTION countStatistics(baselineDate Date)
, но используете его как timestamp
:
SELECT COUNT(*) INTO qty FROM statistics WHERE time_stamp = baselineDate;
Вы получаетенеявное приведение, поэтому countStatistics('2015-01-01 01:00:00')
на самом деле выполнит этот SQL:
SELECT COUNT(*) INTO qty FROM statistics WHERE time_stamp = '2015-01-01';
и после того, как date
неявно приведёт обратно к timestamp
, оно фактически будет таким:
SELECT COUNT(*) INTO qty FROM statistics WHERE time_stamp = '2015-01-01 00:00:00';
Попробуйте изменить объявление функции, чтобы использовать timestamp
:
CREATE OR REPLACE FUNCTION countStatistics(baselineDate timestamp)