Tôi có 2 ngày, 28-Mar-2011 và 29-Jun-2011. Tôi cần một truy vấn sql sẽ hiển thị các tháng giữa 2 ngày này bao gồm các tháng có chứa các ngày, nghĩa là. Tháng 6, tháng 5, tháng 4 và tháng 3.Làm cách nào để có danh sách các tháng giữa 2 ngày nhất định bằng truy vấn?
Trả lời
Something như thế này
SQL> ed
Wrote file afiedt.buf
select to_char(add_months(start_date, level-1), 'fmMonth')
from (select date '2011-03-30' start_date,
date '2011-06-29' end_date
from dual)
connect by level <= months_between(
trunc(end_date,'MM'),
trunc(start_date,'MM'))
* + 1
SQL>/
TO_CHAR(ADD_MONTHS(START_DATE,LEVEL-
------------------------------------
March
April
May
June
nên làm việc.
Bạn có thể sử dụng chức năng MONTHS_BETWEEN
SELECT MOD(TRUNC(MONTHS_BETWEEN('2011-07-29', '2011-03-28')), 12) as MONTHS
FROM DUAL
Output
MONTHS
----------
4
Tôi cần câu trả lời cho điều này một vài ngày trước. Tôi đã tìm thấy một giải pháp khác mà tôi thích hơn:
select to_char(which_month, 'Mon-yyyy') month
from
(
select
add_months(to_date(:start_date,'mm-yyyy'), rownum-1) which_month
from
all_objects
where
rownum <= months_between(to_date(:end_date,'mm-yyyy'), add_months(to_date(:start_date,'mm-yyyy'), -1))
order by
which_month
)
Tất nhiên bạn có thể sử dụng bất kỳ định dạng nào bạn muốn. Tôi 'union'ed và tổng kết hơn một bộ khác để tôi có được những tháng ngay cả khi họ không có kết quả.
Được đánh giá cao, trả lời chính xác những gì tôi muốn :) – John
Gonna thêm giải pháp này chỉ vì tôi nghĩ rằng nó sạch hơn nhiều so với những người khác:
SELECT ADD_MONTHS(TRUNC(TO_DATE('28-Mar-2011', 'DD-MON-YYYY'), 'MON'), ROWNUM - 1) date_out
FROM DUAL
CONNECT BY ADD_MONTHS(TRUNC(TO_DATE('28-Mar-2011', 'DD-MON-YYYY'), 'MON'), ROWNUM - 1)
<= TRUNC(TO_DATE('29-Jun-2011', 'DD-MON-YYYY'), 'MON')
SELECT MIN (to_date((TO_CHAR (Actual_Date, 'DD-MM-RRRR')),'dd-mm-rrrr')) F_DATE,
MAX (to_date((TO_CHAR (Actual_Date, 'DD-MM-RRRR')),'dd-mm-rrrr')) T_DATE,
TO_CHAR (Actual_Date, 'MM-RRRR') TRX_MONTH
FROM ( SELECT TRUNC (TO_DATE (:P_FDATE, 'dd-mm-rrrr')) + LEVEL - 1
Actual_Date
FROM (SELECT TRUNC (TO_DATE (:P_FDATE, 'dd-mm-rrrr'), 'MM') - 1
AS dt
FROM DUAL)
CONNECT BY LEVEL <=
( TO_DATE (:P_TDATE, 'dd-mm-rrrr')
- TRUNC (TO_DATE (:P_FDATE, 'dd-mm-rrrr'))
+ 1))
GROUP BY TO_CHAR (Actual_Date, 'MM-RRRR')
ORDER BY 1
Vui lòng thụt lề mã của bạn bằng 4 dấu cách để kích hoạt đánh dấu cú pháp. Ngoài ra, thêm một chút giải thích văn bản thường được đánh giá cao (đặc biệt là nếu có câu trả lời được chấp nhận, hãy nói những gì giải pháp của bạn làm cho khác nhau). – chtz
- 1. Xây dựng danh sách các tháng bằng cách lặp lại giữa hai ngày trong một danh sách (Python)
- 2. Làm cách nào để so sánh ngày tháng với ngày hiện tại bằng Doctrine 2?
- 3. Cách tìm ngày tháng giữa hai ngày được chỉ định?
- 4. Làm cách nào để có được số ngày trong một tháng nhất định bằng cách sử dụng Joda-Time?
- 5. Tôi làm cách nào để có được ngày sau 15 ngày/1 tháng bằng PHP?
- 6. LINQ truy vấn giữa hai danh sách các đối tượng
- 7. Làm thế nào để có được tất cả các ngày (tháng, ngày và năm) giữa hai ngày trong python?
- 8. Chọn truy vấn mysql giữa ngày?
- 9. Làm cách nào để định dạng danh sách các chuỗi
- 10. Làm cách nào để hợp nhất các danh sách vào danh sách các bộ dữ liệu?
- 11. Làm cách nào để appengine thực hiện truy vấn trên danh sách một cách hiệu quả?
- 12. Làm cách nào để chuyển danh sách các loại phức tạp trong chuỗi truy vấn?
- 13. Truy vấn để chọn giữa hai lần trong ngày
- 14. truy vấn sql để có được ngày sớm nhất
- 15. Làm cách nào để lấy danh sách và tạo tất cả các danh sách có độ dài ngày càng tăng?
- 16. Làm cách nào để tìm danh sách trong danh sách các danh sách có tổng số phần tử lớn nhất?
- 17. Làm cách nào để có danh sách các lệnh bắt đầu bằng một khóa (combo) nhất định trong Emacs?
- 18. ngày 29 tháng 2 so với ngày 28 tháng 2 của năm trước
- 19. Làm thế nào để chuyển đổi số ngày nhất định thành năm, tháng và ngày trong MySQL?
- 20. Có cách nào để tăng danh sách với một truy vấn không?
- 21. Truy vấn MySQL để tính tháng trước
- 22. Làm cách nào để định dạng ngày tháng có định dạng dd/mm/yy trong javascript?
- 23. Mysql chọn truy vấn sau ngày nhất định
- 24. Cách tốt nhất để xác định số ngày trong tháng bằng javascript là gì?
- 25. định dạng ngày tháng jquery ui định dạng ngày tháng
- 26. Làm thế nào để ghép nối bộ định danh duy nhất trong truy vấn động
- 27. Danh sách toàn diện các mẫu định dạng ngày tháng trong obj-c cho iOS
- 28. Làm cách nào để tạo định dạng Ngày như "ngày 1 tháng 11" trong C#
- 29. Đếm trùng lặp giữa 2 danh sách
- 30. Làm cách nào để chuyển đổi chuỗi truy vấn URL thành danh sách các bộ dữ liệu bằng Python?
Xin chào Justin, những người tuyệt vời nghĩ như nhau;) – APC
+1. "giống nhau" nhưng của bạn là - như bạn đã chỉ ra - tốt hơn. : D – APC
Vâng, ngay cả một con sóc mù tìm thấy các hạt thường xuyên. –