Próbuję przekonwertować działające zapytanie MS Access, aby uruchomić na bazie danych Oracle, które są dostępne za pośrednictwem skryptu VB (.asp). Jest to ostatnia część klauzuli WHERE:Proste pytanie składnia daty SQL Oracle
sql = sql & "WHERE (UAT.HB.MB_MODE = 'A' AND UAT.HB.PRINT_DATE >= '"
& SD & "' AND UAT.HB.PRINT_DATE <= '" & ED &"' )"
Zmienna „SD” (czyli „Data rozpoczęcia”) jest ciągiem znaków, które mogą zawierać wartości takie jak „11/11/2008”. To samo dotyczy zmiennej "ED" (tj. "Daty zakończenia").
Jednak daty nie działają. Czy Oracle wymaga specjalnego sposobu używania dat?
Czy daty muszą zostać przeliczone? Czy otaczam je słowem kluczowym "#", tak jak w MS Access?
NLS_DATE_FORMAT, który kontroluje domyślny format niejawnego ciągu na datę i datę na ciągi, zależy od ustawień regionalnych klienta. Gdy masz europejski komputer kliencki, zmienia się domyślny format. Ponieważ preferencje klienta zastępują ustawienia bazy danych, kod może się nie powieść. –
Nie należy jednak polegać na wartościach domyślnych. –
absolutnie. Słuszne uwagi. –