Mam pole datetime o nazwie DateFinished. Muszę mieć możliwość pobrania wszystkich rekordów, w których DateFinished jest w bieżącym miesiącu/roku.TSQL odzyskaj wszystkie rekordy w bieżącym miesiącu/roku
6
A
Odpowiedz
15
Jeśli masz tylko niewielką liczbę wierszy, zrobi to, aby uzyskać wszystkie wiersze, w których DateFinished
jest w tym miesiącu tego roku.
SELECT *
FROM MyTable
WHERE Year(DateFinished) = Year(CURRENT_TIMESTAMP)
AND Month(DateFinished) = Month(CURRENT_TIMESTAMP)
To może być dość powolny na dużej liczbie wierszy chociaż - w tym przypadku z wykorzystaniem DateAdd
, DatePart
i BETWEEN
jest prawdopodobnie bardziej właściwe, i może skorzystać z indeksami (nie mam czasu, aby napisać odpowiedź z udziałem tych właśnie teraz!)
9
Tak samo alternatywnie - powinno się użyć indeksu na DateFinished.
SELECT *
FROM MyTable
WHERE DateFinished BETWEEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)
Powiązane problemy
- 1. Jak wybrać wszystkie rekordy, które są 10 minut w bieżącym znaczniku czasu w MySQL?
- 2. Zwróć wszystkie rekordy mySQL dla bieżącego roku
- 3. Odzyskaj wszystkie właściwości env w Jenkinsfile
- 4. Wyczyść wszystkie rekordy ze sklepu
- 5. Odzyskaj wszystkie kolumny wiersza w Cassandrze przy użyciu klienta Hectora
- 6. Wiele instrukcji jak w TSQL
- 7. Wybierz wszystkie rekordy "młodsze" niż 7 dni
- 8. Zaznacz wszystkie rekordy między dwoma datetime format
- 9. Getting wszystkie rekordy z sqlite android
- 10. Jak niszczyć wszystkie rekordy dla tabeli, w tym: rekordy zależne w innych tabelach
- 11. Usuń wszystkie rekordy w tabeli MYSQL w phpMyAdmin
- 12. Jak mogę usunąć wszystkie rekordy w bazie danych w CouchDB?
- 13. Transakcje zagnieżdżone w TSQL
- 14. Jak mogę zrzucić wszystkie zmienne PHP w bieżącym zakresie?
- 15. Usunąć zduplikowane rekordy w SQL Server?
- 16. Znalezienie wszystkie rekordy zawierające daną podpole w MongoDB
- 17. Użytkownicy zapytania, którzy mają wszystkie wymagane rekordy w dwóch tabelach
- 18. Jak mogę uzyskać wszystkie rekordy kategorii kategorii w zapytaniu WordPress?
- 19. znajdź wszystkie rekordy, w których są spełnione dwa warunki
- 20. Jak kasować stare rekordy git, w tym rekursywnie wszystkie podmoduły?
- 21. Szyny: Jak znaleźć() wszystkie rekordy unikatowe w niektórych polach?
- 22. Odzyskaj poniedziałkową datę bieżącego tygodnia
- 23. Odzyskaj kluczowym elementem w React
- 24. Odzyskaj orientację obrazu w PHP
- 25. Jak wyszukiwać wszystkie utworzone dzisiaj rekordy (północ UTC .. Teraz)
- 26. Jak wyczyścić bazę danych, upuszczając wszystkie rekordy przy użyciu sqlalchemy?
- 27. Czy Linq pobiera najpierw wszystkie rekordy, jeśli wykonuję obliczenia?
- 28. PHP MySQL Get nazwy kolumn podczas iteracji przez wszystkie rekordy
- 29. SQL Uzyskaj wszystkie rekordy starsze niż 30 dni
- 30. Zaznacz wszystkie rekordy MySQL LIMIT i OFFSET zapytania
Twój miesiąc jest wyłączony? – Moose
@Moose Thanks - wciąż edytował :-) – Bridge
To zadziała - ale nie będzie zbyt wydajne, ponieważ używanie kolumny 'YEAR()' lub 'MIESIĄC()' w twojej kolumnie w zasadzie uniemożliwia programowi SQL Server używanie jakichkolwiek indeksów. Jeśli PO potrzebuje tego często, może być przydatne utworzenie dwóch ** obliczonych, utrwalonych ** kolumn, które przechowują miesiąc/rok dla każdego wiersza, a następnie zapytanie o nie. –