SQL oracle按日期排序

时间:2015-04-15 07:58:35

标签: sql oracle sorting date

我想显示01.01.2014之后创建的数据 - 之前创建的数据不应显示在输出中。

到目前为止我得到了这个:

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)

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

  

我想显示01.01.2014之后创建的数据 - 之前创建的数据不应显示在输出中。

然后将日期条件放在过滤谓词中。

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

注意,这将不包括 >在<01; 01-01-2014&#39; 上创建的行包括它们你需要大于或等于

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'之后创建。