| Webi |
Geschrieben am: Di 6.05.2008, 23:01
|
||
|
AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 631 Mitglied seit: 28.03.2004 |
Hallo Brauche mal wieder Hilfe für eine MSSQL-Abfrage. Ich möchte mit der untenstehenden Abfrage als Ergebnis alle Datensätze bekommen, die zwischen "Jetzt" und "Jetzt minus einem Tag" sind. Das Feld enddate ist das Datumsfeld im Format "2008-01-02 11:18:00.000".
Bisher habe ich bei meinem Versuchen entweder keine Datensätze bekommen oder alle möglichen. Jemand eine Idee, wie ich die entsprechenden Ergebnisse erhalte? Danke und Gruss Roland -------------------- www.linkit.ch - Das Webverzeichnis mit Links aus dem Deutschsprachigen Raum.
www.powerplay.ch - Die Hockeyquiz-Page www.bebelino.ch - Onlineshop für Baby- und Kinder-Produkte |
||
![]() |
| TSc |
#2 Geschrieben am: Mi 7.05.2008, 05:37 (+06:36)
|
||||
![]() AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 545 Mitglied seit: 8.11.2004 |
Entweder so:
oder sauberer:
Testen kann ich MSSQL erst auf der Arbeit, daher keine 100% Gewähr... Gruß, Tom -------------------- |
||||
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#3 Geschrieben am: Mi 7.05.2008, 11:06 (+05:29)
|
||||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2078 Mitglied seit: 4.02.2006 |
Im Prinzip ist der Code richtig, abgesehen von der falschen Richtung '<'. Allerdings kennt MSSql kein Format für Datumsfelder. Das Format wird erst bei der Ausgabe festgelegt. Deshalb: Ist das aus Versehen ein nvarchar(20) o.ä.? Das würde nämlich das etwas merkwürdige Resultat erklären, da dann effektiv ein Stringvergleich gemacht worden wäre - mit nicht so sinnvollen Ergebnissen. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten: Web-Datenbanken als Online - CRM - Lösung. Konzentrieren Sie sich auf Ihr Kerngeschäft - nutzen Sie eine schlanke, schnelle Online-Datenbank von verschiedenen Standorten. |
||||
![]() |
| Webi |
#4 Geschrieben am: Mi 7.05.2008, 11:22 (+00:15)
|
|
AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 631 Mitglied seit: 28.03.2004 |
@jauer
Heisst dies, dass das Datum vor dem Vergleich in einen String umgewandelt wird und dadurch beim Resultat dann entweder kein Datensatz rauskommt oder alle möglichen? Verstehe ich dies richtig? Und falls ja, wie kann ich dies umgehen? -------------------- www.linkit.ch - Das Webverzeichnis mit Links aus dem Deutschsprachigen Raum.
www.powerplay.ch - Die Hockeyquiz-Page www.bebelino.ch - Onlineshop für Baby- und Kinder-Produkte |
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#5 Geschrieben am: Mi 7.05.2008, 15:36 (+04:14)
|
||||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2078 Mitglied seit: 4.02.2006 |
Wenn das Feld 'enddate' vom Datentyp nvarchar / varchar / char ist, dann wird das Ergebnis von DateAdd implizit in einen String umgewandelt und es werden die Strings miteinander verglichen. U.a. mit dem Problem, daß das Ergebnis von DateAdd womöglich als 'May 7 2008 4:34PM' ausgegeben wird. Daß nun Textvergleiche etwas schräg werden, dürfte klar sein. Wenn das Feld 'enddate' vom korrekten Datentyp DateTime (oder smalldatetime) ist, dann werden Datumsangaben miteinander verglichen (intern faktisch Dezimalzahlen: Der Ganzzahlanteil bestimmt das Datum, der Dezimalteil die Uhrzeit). Deshalb: Innerhalb vom MS-SqlServer ist diese Aussage
unsinnig, falls das Feld 'enddate' ein Datetime-Format hat. Ich meine aber, das schon bei PHP-Code gesehen zu haben, daß Datumsangaben als Stringfelder abgespeichert und dann per Textvergleich ausgewertet werden. Da Du oben das Format angegeben hast, hört sich das für mich nach so einer Tradition an. Damit ist mir nicht klar: Welches Format hat 'enddate'? -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten: Web-Datenbanken als Online - CRM - Lösung. Konzentrieren Sie sich auf Ihr Kerngeschäft - nutzen Sie eine schlanke, schnelle Online-Datenbank von verschiedenen Standorten. |
||||
![]() |
| Webi |
#6 Geschrieben am: Mi 7.05.2008, 22:38 (+07:01)
|
|
AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 631 Mitglied seit: 28.03.2004 |
Das Feld enddate ist vom Datentyp DateTime.
Die Abfrage von Tom hat mein Problem gelöst. Es werden nun die richtigen Ergebnisse angezeigt. Danke! Gruss Roland -------------------- www.linkit.ch - Das Webverzeichnis mit Links aus dem Deutschsprachigen Raum.
www.powerplay.ch - Die Hockeyquiz-Page www.bebelino.ch - Onlineshop für Baby- und Kinder-Produkte |
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/24326
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| MySQL-Abfrage optimieren | Logigoo | 204 | 6 | Do 26.06.2008, 12:41 |
| MySQL-Abfrage geht nicht? | pl_90 | 334 | 18 | Mo 26.05.2008, 13:37 |
| Access Abfrage Auto Increment | Big Rob | 123 | 2 | Mi 12.03.2008, 16:41 |
| MySQL-Abfrage: Mit oder ohne "JOIN" | cr4m0 | 201 | 6 | Mo 10.03.2008, 16:16 |
| Migration von MSSQL nach MySQL | sigma-ws | 108 | 2 | Mo 11.02.2008, 15:42 |
| SQL Abfrage | milkboy | 151 | 4 | So 6.01.2008, 13:58 |
| Problem bei Abfrage aus MySQL | TTlong | 255 | 10 | Di 1.01.2008, 20:33 |
| IP Abfrage | G.P. | 226 | 13 | So 30.12.2007, 20:26 |
| stored procedure mssql | spaceman007 | 335 | 1 | Di 11.12.2007, 14:56 |
| Datenbank Abfrage wer ist Online | Brian Folte | 301 | 7 | Fr 19.10.2007, 13:00 |
Anzeige - [Interessiert an einer Anzeige?]


















