Oracle-11g
獲取兩個月之間的日期
我能知道為什麼我在我的 SQL 語句中得到奇怪的輸出,即我的表在 5 月有兩個日期,但它只出現一個月,這與我測試它工作的日期範圍相同。
select distinct To_Char (attendance_date,'dd/MM/yyyy') from DIT_2010MAR_CIT4114A_FYP1_NO where attendance_Date between To_Date ('05', 'MM') and To_Date ('05', 'MM');
實際上,您的查詢在我的測試中沒有返回任何內容:(。原因是
attendance_date
它不在您指定的條件之間(To_date('05','MM')
並且To_date('05','MM')
返回相同的值)。您可以更改程式碼
...where attendance_date between To_date('05','MM') and To_date('06','MM');
以選擇 5 月份的所有日期。SQL> desc atten; Name Null? Type ----------------------------------------- -------- ---------------------------- ATTENDANCE_DATE DATE SQL> select * from atten; ATTENDANC --------- 05-MAY-16 03-JUN-16 03-JUL-16 03-MAY-16 SQL> select distinct To_Char (attendance_date,'dd/MM/yyyy') from atten where attendance_Date between To_Date ('05', 'MM') and To_Date ('05', 'MM'); no rows selected
您可以嘗試以下方法來獲得結果。
SQL> select to_char(attendance_date, 'dd/mm/yyyy') from atten where extract(month from attendance_date) = 5; 2 TO_CHAR(AT ---------- 05/05/2016 03/05/2016
或如果您希望顯示 5 到 6 個月之間的出勤日期(如您的問題標題所示)。
select to_char(attendance_date, 'dd/mm/yyyy') from atten where extract(month from attendance_date) = 5 OR extract(month from attendance_date)=6; TO_CHAR(AT ---------- 05/05/2016 03/06/2016 03/05/2016