sql >> Databáze >  >> RDS >> Oracle

Porovnání data Oracle v klauzuli where

Ne tak docela, DATE datový typ nemá formát; je uložen interně v tabulkách jako 7 bajtů (rok je 2 bajty a měsíc, den, hodina, minuta a sekunda jsou každý 1 bajt). Uživatelské rozhraní, které používáte (tj. SQL/PLUS, SQL Developer, Toad, atd.), zvládne formátování DATE z binárního formátu do formátu čitelného člověkem. V SQL/Plus (nebo SQL Developer) je tento formát založen na NLS_DATE_FORMAT parametr relace .

Pokud DATE zadává pouze den, měsíc a rok, pak se časová složka (pravděpodobně) nastaví na 00:00:00 (půlnoc).

Za předpokladu, že časová složka pro váš sloupec DOJ je vždy půlnoc, pak:

SELECT COUNT(*)
FROM   students
WHERE  doj = TO_DATE( your_param, 'dd/mm/yyyy' )

Pokud není vždy půlnoc, pak:

SELECT COUNT(*)
FROM   students
WHERE  TRUNC( doj ) = TO_DATE( your_param, 'dd/mm/yyyy' )

nebo:

SELECT COUNT(*)
FROM   students
WHERE  doj >= TO_DATE( your_param, 'dd/mm/yyyy' )
AND    doj <  TO_DATE( your_param, 'dd/mm/yyyy' ) + INTERVAL '1' DAY


  1. Mohu použít COUNT() a DISTINCT společně?

  2. Změňte formát data v tabulce databáze mySql

  3. Unix SSH bez hesla

  4. Jak získat nový běžecký zůstatek ze stávajícího zůstatku?