Ich habe eine Tabelle mit Jahr und Monat Felder. Ich muss die Zeilen zwischen zwei bestimmten Daten auswählen. Wie stelle ich dies in der Where-Bedingung ein? SQL-Abfrage, um Ergebnis für einen Datumsbereich zu erhalten, wenn Tabelle Jahr und Monat Felder
Antwort
Versuchen Sie mit "Between".
Etwas wie folgt aus:
SELECT SALES_AMOUNT FROM Tabelle WHERE YEAR zwischen 2015 und 2016 und Monat zwischen 6 und 8
Sie ein wenig unklar sind auf das, was "zwischen" bedeutet in diesem Zusammenhang. Ich bin mir ziemlich sicher, dass datefromparts()
kann sehr hilfreich sein:
select t.*
from t
where @date_start <= datefromparts(year, month, 1) and
@date_end >= datefromparts(year, month, 1);
Sie könnten auch eomonth()
hilfreich, wenn das Ende des Monats ein wichtiges Datum ist.
Nizza :) Aber ich denke, es ist nur in SQL Server 2012 ab – Grantly
@Grantly verfügbar. . . Nun, ja, und diese Software ist seit über 5 Jahren draußen. –
LOL Ja, ich bin so hinter diesen Tagen. Ich habe es nur erwähnt, falls jemand Schwierigkeiten hatte, diese Funktion zu benutzen, wie ich. Ich habe viele Versionen laufen, aber immer noch nicht bis 2012,2014 (Obwohl einige meiner Kunden sind) – Grantly
Sie mit Hilfe Monat versuchen können(), Jahr() Funktion Datum
Hier ist das Beispiel:
select * from t, wobei (t.month = Monat ('2017-01 -01 ') und t.year = Jahr (' 2017-01-01 ')) und (t.month = Monat (' 2017-05-01 ') und t.year = Jahr (' 2017-05-01 '));
Unten ist der Link für Monat() in Sql. https://docs.microsoft.com/en-us/sql/t-sql/functions/month-transact-sql
Dies könnte Ihnen bei der Lösung Ihres Problems helfen.
Ziemlich sicher, das Problem erfordert ein Ergebnis zwischen zwei Daten, nicht gleich zwei Termine - die aussieht, als ob es sowieso nicht funktionieren würde ... Aber schöner Versuch. Vielleicht können Sie Ihre Antwort verbessern? – Grantly
können Sie auch versuchen, so etwas wie:
select
d.*
from
(select
t.*,
cast(rtrim(cast([month] as char(2))) + '/1/' + cast ([year] as char(4)) as date) as dt) d
where
dt >= @dateStart and
dt <= @dateEnd
Wenn die Jahres- und Monatswerte ganze Zahlen sind, können Sie sie zu gieße VARCHAR-, dann das Datum und die Verwendung zwischen. Ein Beispiel mit startdate deklarieren und endDate Variablen:
DECLARE @startdate date = '2015-07-01'
,@enddate date = '2016-07-01'
SELECT *
FROM @myTable
WHERE CAST(CAST(Year as varchar) + '-' + CAST(Month as varchar) + '-01' as date)
BETWEEN @startdate AND @enddate
Wenn sie Zeichen sind oder Varchars Sie müssen werfen nur auf dem neuesten Stand und können Sie zwischen:
DECLARE @startdate date = '2015-07-01'
,@enddate date = '2016-07-01'
SELECT *
FROM @myTable
WHERE CAST(Year + '-' + Month + '-01' as date)
BETWEEN @startdate AND @enddate
- 1. Wenn ein Datumsbereich eine ganze bestimmten Monat
- 2. Django, Filter nach bestimmten Monat und Jahr in Datumsbereich
- 3. Monatsenddaten für einen Datumsbereich erhalten
- 4. Datetime Format für einen Monat und Jahr
- 5. Datumsbereich für nächstes Jahr formatieren
- 6. Laravel erhalten Datensätze in Monat und Jahr
- 7. TSQL Monat und Jahr zu Datum Umwandlung
- 8. SQL, um Ergebnis nach Monat und Jahr mit mehreren Bedingungen zu bringen
- 9. Erhalten Monat und Jahr von System
- 10. braucht Jahr, Monat und Tag für Einsendeschluss
- 11. Anzeige von Monat und Jahr
- 12. MS SQL-Datumsbereich Abfrage: Monat zu Monat OK, aber das ganze Jahr falsche Ergebnisse
- 13. Monat und Jahr Filter für Post Kategorien
- 14. Drucken Kalender für bestimmtes Jahr und Monat
- 15. Cross-Join, um alle Viertel-Endmonate für bestimmten Monat im speziellen Jahr zu erhalten
- 16. MySQL-Abfrage für Monat Jahr
- 17. Monat und Jahr Datumsumstellung
- 18. Wie bekomme ich den Datumsbereich für jede Woche im Monat und Jahr mit PHP?
- 19. SQL Server 2005 Erste und letzte Datum für einen beliebigen Monat in einem Jahr
- 20. Querying basierend auf Datumsbereich für Monat und Jahr Zahlen in SQL mit
- 21. Jquery Datepicker nur für Monat und Jahr
- 22. generieren Datumsbereich pro Jahr Basis
- 23. Get DateTime Feld aus der Tabelle und erhalten Jahr, Monat und Tag auf C#
- 24. daterangepicker Monat und Jahr schwer zu sehen
- 25. access-sql und VBA: SUM aktuellen Monat und Jahr (Februar/2017) UND aktuellen Monat und letztes Jahr (Februar/2016)
- 26. Pandas groupby Monat und Jahr
- 27. Abfrage, um Spaltennamen und Werte im Ergebnis zu erhalten?
- 28. Mysql Daten für Monat und Jahr
- 29. datepicker für Monat und Jahr funktioniert nicht
- 30. PHP - Datumsbereich nach Monat
Bearbeiten Sie Ihre Frage und liefern Beispieldaten, die gewünschten Ergebnisse, und ein Tag für die von Ihnen verwendete Datenbank –
Etwas wie '... where yearcol * 100 + monatecol zwischen 201601 und 201612' – jarlh
Welches [DBMS] (https://en.wikipedia.org/wiki/DBMS) Produkt verwenden Sie? Postgres? Orakel? "_SQL_" ist nur eine Abfragesprache, nicht der Name eines bestimmten Datenbankprodukts. –