Název otázky obsahuje „SQL plus“, což pro mě znamená Oracle.
Oracle nemá funkci DATEDIFF. Nejjednodušší metodou, jak určit počet dní mezi 2 daty pomocí Oracle, je odečíst jedno datum od druhého.
Select item, datebought, datesold, datesold-datebought as days from auctions;
Oracle ukládá informace o datu i čase v datovém poli. Je běžnou praxí ukládat data zkrácená na půlnoc v polích data v Oracle, pokud vás čas nezajímá.
Pokud jsou vaše data již zkrácena na půlnoc, bude vypočítaná hodnota celé číslo.
Pokud však vaše uložená data obsahují časové informace, možná budete chtít hodnotu zkrátit, abyste získali integrální hodnotu. Mám podezření, že byste chtěli zkrátit každé datum před odečtením tak, že pokud se koupí v jeden den, pak se kdykoli další den bude počítat jako 1 den. Oracle zkrátí data na půlnoc.
select item, datebought, datesold, trunc(datesold)-trunc(datebought) as days from auctions;
Souhlasím s WarrenT, že vaše tabulka by neměla mít sloupec denormalizovaných dnů.