Ho un campo datetime denominato DateFinished. Devo essere in grado di recuperare tutti i record in cui DateFinished è all'interno del mese/anno corrente.TSQL recupera tutti i record nel mese/anno corrente
6
A
risposta
15
Se si dispone solo di un numero limitato di righe, questo servirà per ottenere tutte le righe in cui DateFinished
si trova in questo mese di quest'anno.
SELECT *
FROM MyTable
WHERE Year(DateFinished) = Year(CURRENT_TIMESTAMP)
AND Month(DateFinished) = Month(CURRENT_TIMESTAMP)
Questo potrebbe diventare piuttosto lento su un gran numero di righe anche se - in questo caso utilizzando DateAdd
, DatePart
e BETWEEN
è probabilmente più appropriato, e possono usufruire di indici (non ho il tempo di scrivere un rispondi coinvolgendo quelli adesso!)
9
Proprio come alternativa - questo dovrebbe usare un indice su DateFinished.
SELECT *
FROM MyTable
WHERE DateFinished BETWEEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)
Problemi correlati
- 1. Hibernate unisce due tabelle e recupera tutti i record?
- 2. Linq recupera prima tutti i record se eseguo un conteggio?
- 3. Restituisce tutti i record mySQL per l'anno corrente
- 4. Slack: Recupera tutti i messaggi
- 5. CloudKit: recupera tutti i record con un determinato tipo di record?
- 6. MediaCodec recupera tutti i fotogrammi dal video
- 7. Firebase recupera tutti i dati all'avvio dell'app
- 8. MySQL recupera l'ultimo record per il gruppo
- 9. Rails 3- Recupera gli ultimi N record
- 10. SQL: recupera tutti i record da una tabella E un conteggio dei record da una seconda tabella?
- 11. MySQL: recupera il record più recente
- 12. Recupera record casuali utilizzando i dati Spring JPA
- 13. SQL con LIMIT1 restituisce tutti i record
- 14. Query Elasticsearch per restituire tutti i record
- 15. Cancella tutti i record da un negozio
- 16. Ottenere tutti i record da SQLite Android
- 17. Come posso elencare TUTTI i record DNS?
- 18. Elimina tutti i record tabella azzurrata
- 19. selezionare tutti i record creati nell'ora
- 20. Elimina tutti i record in NSManagedObjectContext
- 21. Hadoop invia record a tutti i riduttori
- 22. Doctrine 2 - Ottieni tutti i record
- 23. Recupera tutti i commenti con FQL dall'ID applicazione
- 24. C# IEnumerable Recupera il primo record
- 25. Recupera il valore metrico corrente dalla grafite
- 26. Funzione di aggiornamento nel trigger TSQL
- 27. Emgu CV recupera tutti i fotogrammi dal file video
- 28. Wordpress: recupera tutti i valori di un campo personalizzato
- 29. Recupera il valore corrente di ARITHABORT
- 30. Recupera indice riga tabella della riga corrente
la tua parte mese è disattivata? – Moose
@Moose Grazie - stava ancora modificando :-) – Bridge
Questo funzionerà - ma non sarà molto efficiente dato che l'uso di 'YEAR()' o 'MONTH()' sulla colonna impedisce fondamentalmente a SQL Server di utilizzare qualsiasi indice. Se l'OP ha bisogno di questo spesso, potrebbe essere utile creare due ** colonne calcolate, persistenti ** che contengono il mese/anno per ogni riga e quindi le query su quelle. –