Tôi có trường datetime được gọi là DateFinished. Tôi cần để có thể lấy tất cả hồ sơ mà DateFinished nằm trong tháng/năm hiện tại.TSQL truy xuất tất cả hồ sơ trong tháng/năm hiện tại
6
A
Trả lời
15
Nếu bạn chỉ có một số hàng nhỏ, điều này sẽ thực hiện để nhận tất cả các hàng có số DateFinished
vào tháng này trong năm nay.
SELECT *
FROM MyTable
WHERE Year(DateFinished) = Year(CURRENT_TIMESTAMP)
AND Month(DateFinished) = Month(CURRENT_TIMESTAMP)
này có thể nhận được khá chậm so với một số lượng lớn hàng mặc dù - trong trường hợp này sử dụng DateAdd
, DatePart
và BETWEEN
có lẽ là thích hợp hơn, và có thể tận dụng lợi thế của các chỉ số (Tôi không có thời gian để viết một câu trả lời liên quan đến những người đó ngay bây giờ!)
9
Cũng giống như một giải pháp thay thế - điều này sẽ sử dụng chỉ mục trên DateFinished.
SELECT *
FROM MyTable
WHERE DateFinished BETWEEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)
Các vấn đề liên quan
- 1. Trả lại tất cả hồ sơ mySQL cho năm hiện tại
- 2. SQL với LIMIT1 trả về tất cả các hồ sơ
- 3. MySQL truy xuất hồ sơ mới nhất cho Nhóm
- 4. Xóa tất cả hồ sơ từ một cửa hàng
- 5. Bắt tất cả hồ sơ từ sqlite android
- 6. Chọn tất cả hồ sơ sử dụng MySQL LIMIT và OFFSET truy vấn
- 7. Tìm tất cả hồ sơ có chứa một trường con được đưa ra trong MongoDB
- 8. Hồ sơ Haskell mà không cần cài đặt cài đặt thư viện hồ sơ cho tất cả các phụ thuộc
- 9. Proxy ứng dụng hồ sơ người dùng không thể truy xuất phân vùng từ Ứng dụng hồ sơ người dùng
- 10. truy cập vào hồ sơ OCaml
- 11. Nhận hồ sơ cuối cùng trong một bộ truy vấn
- 12. truy vấn sql để xóa hồ sơ
- 13. chứng Đẩy không xuất hiện khi tạo một hồ sơ trong iOS cổng dev
- 14. Không thể cài đặt Hồ sơ cấp phép sản xuất
- 15. truy xuất danh sách tất cả các nhãn trong blogger
- 16. MsBuild không tìm thấy hồ sơ xuất bản
- 17. cách thực hiện hồ sơ cho một trang web?
- 18. Nhận hồ sơ cuối cùng tại Cassandra
- 19. HttpClient truy xuất tất cả các tiêu đề
- 20. SQL chọn tất cả hồ sơ chỉ nếu tổng là lớn hơn 100
- 21. SQL: tìm kiếm/thay thế nhưng chỉ lần đầu tiên giá trị xuất hiện trong hồ sơ
- 22. tsql "lần xuất hiện cuối cùng" bên trong một chuỗi
- 23. Nhận Hồ sơ Ứng dụng Hồ sơ theo chương trình
- 24. Các hồ sơ nguồn mở được đề xuất
- 25. Hồ sơ Maven
- 26. Ember-Data callback khi FindAll xong tải tất cả hồ sơ
- 27. Hồ sơ thành viên ASP.NET
- 28. làm thế nào để có được hồ sơ của ngày trước đó bằng cách sử dụng tsql?
- 29. Hadoop gửi hồ sơ tới tất cả các bộ giảm số
- 30. Truy xuất hồ sơ đáp ứng điều kiện sử dụng GROUP BY
phần tháng của bạn bị tắt? – Moose
@Moose Thanks - vẫn đang chỉnh sửa :-) – Bridge
Thao tác này sẽ hoạt động - nhưng sẽ không hiệu quả vì sử dụng 'YEAR()' hoặc 'MONTH()' trên cột của bạn về cơ bản ngăn SQL Server sử dụng bất kỳ chỉ mục nào. Nếu OP cần điều này thường xuyên, nó có thể hữu ích để tạo ra hai ** **, tồn tại ** cột giữ tháng/năm cho mỗi hàng và sau đó truy vấn trên những người. –