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

Oracle SQL dotaz pro formát data

to_date() vrátí datum v 00:00:00, takže musíte "odstranit" minuty z data, se kterým porovnáváte:

select * 
from table
where trunc(es_date) = TO_DATE('27-APR-12','dd-MON-yy')

Pravděpodobně budete chtít vytvořit index na trunc(es_date) pokud je to něco, co děláte pravidelně.

Doslovný '27-APR-12' může velmi snadno selhat, pokud se výchozí formát data změní na jiný. Ujistěte se tedy, že vždy používáte to_date() se správnou maskou formátu (nebo literálem ANSI:date '2012-04-27' )

Ačkoli jste udělali správně, když jste použili to_date() a nespoléháme se na implicitní konverzi datových typů, vaše použití to_date() má stále jemné úskalí kvůli formátu 'dd-MON-yy' .

Při jiném nastavení jazyka to může snadno selhat, např. TO_DATE('27-MAY-12','dd-MON-yy') když je NLS_LANG nastaveno na němčinu. Vyhněte se všemu ve formátu, který by se mohl v jiném jazyce lišit. Použití čtyřmístného roku a pouze čísel, např. 'dd-mm-yyyy' nebo 'yyyy-mm-dd'



  1. Rozdíl mezi LockModeType Jpa

  2. Vkládejte data do 3 tabulek najednou pomocí Postgres

  3. Co je blokování serveru SQL?

  4. Konfigurace MySQL 8