2015-04-15 3 views
1

Я хотел бы показать данные, созданные после 01.01.2014 - данные, созданные ранее, не должны отображаться на выходе.SQL oracle сортировать по дате

Я получил это до сих пор:

AND TO_CHAR(table1.datum,'IW') = 17 (number of the week - just a start from me) 
AND TO_CHAR(table1.datum,'YYYY') = 2014 (shows only data from 2014) 

Можете ли вы мне помочь?

+0

SELECT в сочетании с WHERE. – jarlh

+0

Можете ли вы объяснить свое фоновое исследование для этого? простой ответ google/bing должен ответить на этот вопрос - или посмотреть документацию dev. – BMac

+0

Я получил это до сих пор: И TO_CHAR (table1.datum, 'IW') = 17 И TO_CHAR (table1.datum, 'YYYY') = 2014 – piguy

ответ

0

Я хотел бы показать данные, созданные после 01.01.2014 - данные, созданные до этого не должно быть показано на выходе.

Тогда просто поставить условие даты в фильтра предиката.

WHERE table1.datum > TO_DATE('01-01-2014','DD-MM-YYYY') 

Примечание, что это будет не включать строки, которые были созданы на '01 -01-2014', чтобы включить их, а вам нужно больше или равно:

WHERE table1.datum >= TO_DATE('01-01-2014','DD-MM-YYYY') 

Например,

SQL> WITH table1 AS(
    2 SELECT to_date('20-12-2013','DD-MM-YYYY') datum FROM dual UNION ALL 
    3 SELECT to_date('01-04-2014','DD-MM-YYYY') datum FROM dual UNION ALL 
    4 SELECT to_date('20-10-2015','DD-MM-YYYY') datum FROM dual 
    5 ) 
    6 SELECT * FROM table1 
    7 WHERE table1.datum >= TO_DATE('01-01-2014','DD-MM-YYYY') 
    8/

DATUM 
--------- 
01-APR-14 
20-OCT-15 

SQL> 

Итак, '20-12-2013' отфильтрован, и у вас есть строки, созданные только после '01.01.2014'.

+0

Спасибо - это помогло мне! – piguy

0
Select * from table 
Where the_date_field < to_date('01-01-2014','dd-mm-yyyy') 
Order by ..... /* If needed */