Hi,
Ich will eine Datenbankabfrage machen. Dazu habe ich ein Datum in der Datenbank stehen und das andere liegt als Varible vor (Format: YYYY-MM-DD) also wie das MySQL Format. Jetzt will ich eine Bedingung erstellen, dass nur die Zeilen ausgelesen werden deren Datum sich nach dem des Datums der Variable befinden (die also chronologisch hinterher kommen)
Mein Ansatz:
Code:
TO_DAYS(DatumDatenbank) > TO_DAYS(DatumVariable)
WHERE Datumtabelle < $datumvariable
es kommt aber beidesmal kein ergebnis raus (leeres Ergebnis) obwohl es mehrere Zeilen gibt wo es zutreffen würde - was ist an der Abfrage falsch? der spaltentyp aus dem das datum gelesen wir ist "DATE" - die Variable wird dann als Array herausgelesen und soll dann verglichen werden. mit einer count abfrage kommen exakt 0 Ergebnisse heraus. Sql datum vergleichen online. wenn ich to_days(datumdatenbank) ausgeben lasse erhalte ich einen wert - wenn ich to_days(datumvariable) ausgeben lasse erhalte ich keinen wert - die variable ergibt sich wie schon gesagt aus einer anderen datenbank und wir dort als array ausgelesen
- Sql datum vergleichen command
- Sql datum vergleichen online
Sql Datum Vergleichen Command
Aber in welcher Reihenfolge? Die folgenden Abbildungen zeigen, wie sich die Spaltenreihenfolge auf den durchsuchen Indexbereich auswirkt. Dafür suchen wir alle Mitarbeiter der Zweigstelle 27, die zwischen erstem und neuntem Jänner 1971 geboren wurden. Abbildung 2. 2 zeigt einen Ausschnitt aus dem Index auf DATE_OF_BIRTH und SUBSIDIARY_ID – in dieser Reihenfolge. Wo wird die Suche beginnen? Oder anders gefragt, wohin führt der Indexbaum? Der Index ist vorrangig nach Geburtsdatum sortiert. Datenbanken - SQL-Abfrage mit Where datum < 'dd.mm.yyyy' - MS-Office-Forum. Nur wenn zwei Mitarbeiter am selben Tag geboren wurden, wird die SUBSIDIARY_ID -Spalte zur weiteren Sortierung herangezogen. Da die Suche mehrere Tage abdeckt, ist die Sortierung der SUBSIDIARY_ID -Spalte beim Durchwandern des Indexbaumes nutzlos. Das wird offensichtlich, wenn man bedenkt, dass es keinen Eintrag für Zweigstelle 27 in den Zweigknoten gibt – obwohl es in den Blattknoten einen gibt. Der durchsuchte Indexbereich wird also nur von den Bedingungen auf der DATE_OF_BIRTH -Spalte definiert. Unabhängig vom SUBSIDIARY_ID -Filter beginnt die Suche also beim ersten Datum und endet beim zweiten.
Sql Datum Vergleichen Online
Auch wenn jemand weiß, einen besseren Weg, um dies zu implementieren, lassen Sie es mich bitte wissen. Informationsquelle Autor Gage | 2010-07-27
Letzte Zeile behielt aber den vorletzten würde es wieder 6 Ergebnisse (>). Nach der Durchsicht der Daten konnte ich sehen, dass 4 von diesen Ergebnissen sollten die zurückgegeben worden sind. Nun der seltsame Teil. Unten ist der code, den ich momentan verwende. SELECT DISTINCT o. Date, e. Emp_ID as Emp_ID, e. First_Name + ' ' + e. Last_Name as Name, o. Quantity as Sum
left join OT_Hours o on o. Emp_ID
left join Position p on p. Position_ID
left join Signup_Sheet s on s. Emp_ID
and o. Date between '07/26/2009' and '07/26/2010'
Diese Abfrage gibt Ergebnisse zurück, aber ich habe auch getestet, wie ich, der andere, wenn die war über und unter dem Datum angegeben. Wenn das Datum <= 16 Ergebnisse zurückgegeben wurden, wenn > 8 Ergebnisse zurückgegeben wurden. Die Letzte Abfrage ergab 6 Ergebnisse. Sql datum vergleichen command. Nun ist dies nicht eine Produktionsdatenbank ich bin gegen Abfragen und ich bin die einzige Hilfe, damit die Daten nicht ändern. Eine Erklärung, warum dies geschehen war? Ich nehme an, es hatte etwas zu tun mit dem umwandeln in varchar und es konnte nicht vergleichen, richtig, aber das erklärt nicht, warum ich 12 <=, 6 > und dann keine Ergebnisse in der Ende.