Forum: SQL |
Thema:
Re: mit WHERE filtern ??? |
Von:
G. Guest (
31.10.2005 12:04) |
Hallo Tom,
also, es hat etwas gedauert bis ich das mit dem cast verstanden habe... Habe das ganze jetzt mal einzeln direkt auf dem SQL Server versucht.
select * from tabelle
where Datum between cast('15.' + cast(datepart(mm,getdate()-1) As nvarchar) + '.' + cast(datepart(yyyy, getdate())As nvarchar)as datetime)and cast('14.' + cast((datepart(mm,getdate()))as nvarchar) + '.' + cast(datepart(yyyy, getdate()) as nvarchar) as datetime)
Das war ja dein erstes Statement(wenn Tag <=14). Jetzt habe ich ein Problem: Ich bekomme zwar keine Fehlermeldung, aber auch keine Daten angezeigt. Habe dann noch etwas herumprobiert, und bin auf folgende Idee gekommen. Würde es nicht genügen, wenn ich folgendes schreibe:
if datepart(dd,getdate()) <= 14
begin
select * from tabelle
where Datum >= cast('15.' + cast(datepart(mm,getdate()-1) As nvarchar) + '.' + cast(datepart(yyyy, getdate())As nvarchar)as datetime)
end
else
begin
select * from tabelle
where datum >= cast('15.' + cast(datepart(mm,getdate()) as nvarchar) + '.' + cast(datepart(yyyy,getdate()) as nvarchar) as datetime)
end
end if
Von meinem (begrenzten) Verständnis her würde ich annehmen, dass ich so entweder (Tag <=14) alle Datensätze des Vormonates ab dem 15. erhalte, oder (Tag>14) alle Datensätze des aktuellen Monats. Sehe ich das falsch?
Dann müsste ich mir vorerst keine Gedanken mehr machen, wie ich das mit dem between...and hinbekomme...
LG
Thorsten
Betreff |
Von |
Datum |
|
|
Re: mit WHERE filtern ???
Wenn es die Daten liefert die du brauchst dann ist das bestimmt richtig du ... :-)<br><br>In meinem Post ist übrigens ein Fehler drin ... <br>cast(datepart(mm,getdate()-1) as nvarchar)... |
|
|
|
|
|
G.
Guest
|
31.10.2005 12:14 |
|
|
Re: mit WHERE filtern ???
Jaja, die Klammern ;-) wahrscheinlich hatte ich gerade einen ähnlichen Fehler(oder habe ihn übernommen?), denn plötzlich funktioniert die Abfrage auch mit between...and!<br><br>So gehe ich dann auch... |
|
|
|
|
|
G.
Guest
|
31.10.2005 12:30 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!