Oracle
 sql >> Baza danych >  >> RDS >> Oracle

JAK POBIERZ DANE MIĘDZY 2 DATAMI W ORACLE SQL DEVELOPER?

Data nie ma formatu — jest przechowywana wewnętrznie w bazie danych jako 7-bajtowa (reprezentujące rok, miesiąc, dzień, godzinę, minutę i sekundę) i dopiero wtedy, gdy używany interfejs użytkownika (tj. SQL/Plus, SQL Developer, Java itp.) nie spróbuje go wyświetlić użytkownikowi i dokona konwersji w coś, co uznasz za sensowne (zazwyczaj ciąg), że data ma format.

Aby naprawić zapytanie, wystarczy otoczyć ciąg daty w pojedynczych cudzysłowach i użyć YY aby dopasować dwucyfrowy format roku (w przeciwnym razie Oracle założy, że 17 w formacie YYYY to rok 0017 a wiek nie będzie taki, jak się spodziewasz ):

select sum(TOTAL_AMOUNT)
from   table a
where  trn_date between TO_DATE('01-APR-17', 'DD-MON-YY')
                    AND TO_DATE('31-MAR-17', 'DD-MON-YY'); 

Możesz jednak również użyć literałów daty (i pominąć konieczność dopasowania modelu formatu daty):

select sum(TOTAL_AMOUNT)
from   table a
where  trn_date between DATE '2017-04-01'
                    AND DATE '2017-05-31'; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy procedura SQL może zwrócić tabelę?

  2. Jak wstawić wiele wierszy do tej samej tabeli — Oracle 10g

  3. Dlaczego wiele tabel ORACLE domyślnie 12c?

  4. Czy jest jakiś sposób na uzyskanie informacji o bieżącej sesji z gv$session w Oracle?

  5. Wywołanie niezdefiniowanej funkcji oci_connect()