PostgreSQL procédure stockée paramètre de données
J'ai de la procédure stockée suivante, qui renvoie 0 résultats mais si l'exécution de la requête par lui-même-il beaucoup de résultats. Ce qui me manque.
CREATE OR REPLACE FUNCTION countStatistics(baselineDate Date) RETURNS int AS $$
DECLARE
qty int;
BEGIN
SELECT COUNT(*) INTO qty FROM statistics WHERE time_stamp = baselineDate;
RETURN qty;
END;
$$ LANGUAGE plpgsql;
--Execute the function
SELECT countStatistics('2015-01-01 01:00:00') as qty;
return 0 résultats
SELECT COUNT(*) FROM statistics WHERE time_stamp = '2015-01-01 01:00:00';
retour 100+ résultats
OriginalL'auteur user373201 | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la déclaration de vos
baselineDate
paramètre comme unedate
:mais en l'utilisant comme un
timestamp
:Vous obtenez un cast implicite, de sorte
countStatistics('2015-01-01 01:00:00')
va donc exécuter cette SQL:et, après la
date
est implicitement convertie en arrière à untimestamp
, il sera en fait à ceci:Essayez de modifier votre déclaration de fonction pour utiliser une
timestamp
:OriginalL'auteur mu is too short