DateFinished adlı bir datetime alanına sahibim. DateFinished'ın geçerli ay/yıl içinde bulunduğu tüm kayıtları alabilmem gerekir.TSQL geçerli ay/yıldaki tüm kayıtları al
6
A
cevap
15
Yalnızca az sayıda satır varsa, bu yılın bu ayında DateFinished
'un bulunduğu tüm satırları almak için bunu yapar.
SELECT *
FROM MyTable
WHERE Year(DateFinished) = Year(CURRENT_TIMESTAMP)
AND Month(DateFinished) = Month(CURRENT_TIMESTAMP)
Gerçi satır çok sayıda üzerinden oldukça yavaş alabilir - ki bu durumda DateAdd
, DatePart
ve BETWEEN
kullanarak ben bir yazmak için zaman yok (muhtemelen daha uygun olduğunu ve endeksler yararlanabilir Şu anda bunları içeren cevap!)
9
Sadece bir alternatif olarak - bu DateFinished'de bir dizin kullanmalıdır.
SELECT *
FROM MyTable
WHERE DateFinished BETWEEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)
İlgili konular
- 1. Tablodan tüm kayıtları al - EclipseLink
- 2. Doktrin 2 - Bütün kayıtları al
- 3. Geçerli URL'yi Python'da al
- 4. TSQL - Tarihin benim değerin en yakın olduğu satırı al
- 5. Bir mağazadan tüm kayıtları temizleyin
- 6. Geçerli istekden uygulama URL'si al
- 7. Geçerli parametreyi URL parametreleriyle al
- 8. AngularJS'de Geçerli Denetleyici Adı Al
- 9. .htaccess - geçerli URL'yi al ve
- 10. iki koşulun doğru olduğu tüm kayıtları bul
- 11. Tüm Javascript Değişkenlerini al?
- 12. HttpClient tüm üstbilgileri al
- 13. TSQL
- 14. Tsql tüm satırlar ve değerler bir satırda
- 15. Ekrandaki tüm metni al UIWebView
- 16. Koleksiyondaki tüm alt belgeleri al
- 17. MSMQ Tüm Özel Kuyrukları Al
- 18. C# Lucene tüm indeksi al
- 19. Android: tüm bildirimleri kodla al
- 20. ActiveMQ kuyruktan tüm iletileri al
- 21. Pytest: Tüm testlerin adreslerini al
- 22. İlgili tüm kayıtları birden fazla tablodan silin
- 23. algolia php api tüm kayıtları iade etmiyor
- 24. Alt sorguda bulunmayan tüm kayıtları alın
- 25. Rails - Koşullara uyan tüm kayıtları sil
- 26. MySQL DELETE tüm ancak sonuncu X kayıtları
- 27. jQuery DataTables Tüm kayıtları kayıt olarak görüntüle
- 28. MySQL'de tüm yetim kayıtları nasıl silinir?
- 29. Sql İfade, Geçerli Sistem Tarihine Sahip Kayıtları Filtrele
- 30. Geçerli görünümü al. Reload view later
ay bölümünüz kapalı mı? – Moose
@Moose Teşekkürler - hala düzenleme oldu :-) – Bridge
Bu işe yarar - ancak sütununuzdaki YEAR() 'veya' MONTH() 'işlevini kullanmanız temel olarak SQL Server'ın herhangi bir dizini kullanmasını engelleyeceğinden çok verimli olmaz. OP'nin buna sıkça ihtiyacı varsa, her bir satır için ayı/yılı tutan ve ardından bunları sorgulayan iki ** hesaplanmış, kalıcı ** sütun oluşturmak yararlı olabilir. –