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

Jak formátovat a třídit datum v Oracle?

Zní to, jako byste chtěli něco jako

SELECT to_char( your_date_column, your_format_mask )
  FROM your_table
 ORDER BY your_date_column

V SELECT seznam, chcete vrátit řetězec znaků, který představuje datum ve vámi preferovaném formátu. V ORDER BY doložky, chcete objednat do aktuálního data. Pomocí standardního EMP a DEPT například tabulky

SQL> ed
Wrote file afiedt.buf

  1  select to_char( hiredate, 'DD-MM-YYYY' )
  2    from emp,
  3         dept
  4   where emp.deptno = dept.deptno
  5*  order by hiredate
SQL> /

TO_CHAR(HI
----------
17-12-1980
20-02-1981
22-02-1981
02-04-1981
01-05-1981
09-06-1981
08-09-1981
28-09-1981
17-11-1981
03-12-1981
03-12-1981
23-01-1982
19-04-1987
23-05-1987

14 rows selected.

Pokud přidáte DISTINCT, problém je v tom, že Oracle neví, že funkce, kterou aplikujete (v tomto případě TO_CHAR), poskytuje mapování jedna ku jedné z dat v tabulce na data ve výstupu. Například dvě různá data (1. října 2010 10:15:15 a 1. října 2010 23:45:50) mohou generovat stejný znakový výstup, což donutí Oracle odstranit jeden ze dvou řetězců '01-10-2010' ale ta dvě data by se řadila jinak. Tento problém můžete napravit vnořením dotazu a převedením řetězce zpět na datum po provedení DISTINCT a před provedením příkazu ORDER BY

SQL> ed
Wrote file afiedt.buf

  1  select hire_date_str
  2    from (
  3      select distinct to_char( hiredate, 'DD-MM-YYYY' ) hire_date_str
  4        from emp,
  5             dept
  6       where emp.deptno = dept.deptno
  7      )
  8*  order by to_date(hire_date_str,'DD-MM-YYYY')
SQL> /

HIRE_DATE_
----------
17-12-1980
20-02-1981
22-02-1981
02-04-1981
01-05-1981
09-06-1981
08-09-1981
28-09-1981
17-11-1981
03-12-1981
23-01-1982
19-04-1987
23-05-1987

13 rows selected.


  1. Zkopírujte tabulky s jiným názvem sloupce MySQL

  2. Spojení pro čtení a zápis Laravel není synchronizováno

  3. Vyhledání aktuálních pracovních nabídek pro Oracle Forms &Reports

  4. Když spustím program, JPA nevytvoří tabulku v MySQL