AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Between liefert keine Ergebnisse
Thema durchsuchen
Ansicht
Themen-Optionen

Between liefert keine Ergebnisse

Ein Thema von Captnemo · begonnen am 7. Nov 2012 · letzter Beitrag vom 8. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

Between liefert keine Ergebnisse

  Alt 7. Nov 2012, 22:22
Datenbank: MSSQL Express Edition • Version: 2005 • Zugriff über: ADO
Hi,

ich will alle Einträg innerhalb eines bestimmten Zeitraums abfragen.

Grundsätzlich sollte das ja gehen mit

Code:
Select * from Tabelle where datum between :anfang and :ende
Allerdings liefert mir das mit Anfang=01.01.2012 und ende=31.01.2012 keine Ergibnismenge

Wenn ich aber z.B.

Code:
Select * from Tabelle where datum=:anfang
ausführe, dann erhalte ich entsprechende Einträge (anfang=10.01.2012), aber halt nur von dem Datum. Diese hätte eigentlich schon in der Anfrage mit between erscheinen müssen.

Das Datum-Feld in der Tabelle ist vom Typ DateTime.

Hat einer eine Idee?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Between liefert keine Ergebnisse

  Alt 7. Nov 2012, 22:42
Warum man das nicht mit DateTime machen sollte: http://www.kebabshopblues.co.uk/2009...l-server-2005/
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 07:30
Was hat die Problemstellung mit dem Artikel zu tun? Der verlinkte Artikel beschreibt Fallstricke bei der Abfrage mit BETWEEN und Datumswerten vor dem 1.1.1900.

Bei dem konkreten Problem muss der Grund etwas Banales und 'Dummes' sein. Ich kenne Probleme dieser Art nur im Zusammenhang mit falsch formatierten oder falsch parametrierten Queries (z.B. Anfang>Ende).

Beides scheint hier aber nicht der Fall zu sein.

Hast Du die Query mal im SSMS abgesetzt?

Wie sieht der Delphi-Quellcode aus?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 07:47
vielleicht beim setzen der Parameter diese vertauscht, oder 2* den gleichen Wert genommen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 08:16
Was sagt der MS SQL Profiler?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 08:26
Was hat die Problemstellung mit dem Artikel zu tun? Der verlinkte Artikel beschreibt Fallstricke bei der Abfrage mit BETWEEN und Datumswerten vor dem 1.1.1900. [...]
Dann hast Du den Artikel schlicht und ergreifend nicht (vollständig) gelesen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 08:30
Das wäre eine Erklärung, wenn Werte der "Grenztage" fehlen würden, diese würden aber auch bei der Abfrge nur eines Tages fehlen.
Markus Kinzler
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 08:34
Eine Umstellung wie in dem Blog-Beitrag empfohlen würde aber eventuell das bestehende Problem direkt mit beseitigen.

Ansonsten gebe ich Dir aber recht.
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 11:38
Der Fehler war meine eigene Dummheit

Ich war in der leichtsinnigen Annahme, das ich als DataType auch ftDate verwenden kann (in Delphi ja kein Problem).
Der MSSQL-Server kennt (zumindest in der 2005er Version) nur den Datentyp DateTime. Und gezwungenermaßen muß man in dann im Query auch als solchen definiert, also als ftDateTime. Dann klappt's auch.

Habe lange mit MySQL gearbeitet, welches sowas wenn ich mich recht erinnere ohne murren macht.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
DanielJ

Registriert seit: 8. Sep 2008
Ort: Hamburg
35 Beiträge
 
Delphi XE Professional
 
#10

AW: Between liefert keine Ergebnisse

  Alt 8. Nov 2012, 14:39
Hallo

ich verwende nach einigen Nicklichkeiten mit between auf unterschiedlichen RDBMS immer:

Code:
Select * from Tabelle where datum>=:FromIncluding and datum<:TillNotIncluding
Das funktioniert auf allen Systemen, auch mit Zeitanteilen immer sauber. Und ganz ehrlich, soo viel mehr Tipparbeit ist das auch nicht.

LG,
Daniel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz