Microsoft Excel

Herbers Excel/VBA-Archiv

Datum und SQL

Betrifft: Datum und SQL von: Stefan
Geschrieben am: 07.09.2004 18:26:57

Hallo,

Ich habe ein Problem. Ich versuche aus einer SQL-DB Werte zu lesen, die in einem bestimmten datumsbereich liegen... Soweit, so einfach. Denkste!

Beispiel:

WHERE xDatum<09/07/2004 AND bla bla bla

Warum erkennt SQL das nicht als Datum an? ich hab das Datum auch schon in # eingeschlossen, in yyyymmdd, dd.mm.yyyy usw formatiert, nichts will funktionieren...
Wenn ich per Access auf diese Tabelle zugreife und mit <#07.09.2004# abfrage bekomm ich die gewünschten Ergebnisse. In VBA ne Fehlermeldung (Incorrect Syntax near #)
Was mach ich falsch?
In der SQL-DB steht das Datum in folgenden Format: 07.09.2004 und ist von Typ DateTime.

Danke für euere Hilfe!
Stefan

  


Betrifft: AW: Datum und SQL von: andre
Geschrieben am: 07.09.2004 18:37:09

Hallo Stefan,
generiere mal eine neue Abfrage, bearbeite sie mal im Query (Kriterien hinzufügen, Datum) und schaue den SQL-Befehl an.


  


Betrifft: AW: Datum und SQL von: ypsilon
Geschrieben am: 07.09.2004 18:57:00

hi Stefan,
probier mal
where deinvergleichsdatum = trunc(datumsspalte,'DD.MM.YYYY')
cu Micha


  


Betrifft: AW: Datum und SQL von: Stefan
Geschrieben am: 07.09.2004 19:09:09

Hallo,

da bekomme ich die Fehlermeldung "Trunc is not a recognized function name" zurückgeliefert.
So würde das aussehen...

(trunc(KHKOpHauptsatz.Faelligkeit,'DD.MM.YYYY')<" & datStart & ")


Wär das so korrekt?

Vielen Dank!
Stefan


  


Betrifft: AW: Datum und SQL von: y
Geschrieben am: 07.09.2004 19:15:06

hi Stefan,
also haben wir schon mal rausbekommen, dass du nicht mit oracle abeitest ;-)
dann versuchs mit round()
nach meiner unmassgeblichen meinung besteht dieser wunderschöne zelleninhalt nicht nur aus dem datum sondern zusätzlich auch noch aus der zeit
bei oracle wäre es das format '09/07/2004 00:00:00'
vielleicht hilft dir das ja weiter
cu Micha


  


Betrifft: AW: Datum und SQL von: Stefan
Geschrieben am: 08.09.2004 08:01:04

Hi Micha,

richtig... MS-SQL... ;))
Hmm... also das mit round() funzt nicht, weil der wert kein float ist... D.h. man müsste ihn erst konvertieren...
Es muss doch ne einfachere Möglichkeit geben, ein Datum zu vergleichen... Das gibts doch gar nicht...
Ja, dass da die Uhrzeit auch mit drin steht, hab ich mir auch gedacht, aber wenn ich die mit angebe, ist er nur noch am schimpfen... ;))

MfG
Stefan


  


Betrifft: AW: Datum und SQL von: y
Geschrieben am: 08.09.2004 15:17:00

hi Stefan,
ist doch ganz einfach ;-)

Problem:
Der Datentyp datetime beinhaltet Datum und Uhrzeit. Eine Abfrage auf ein bestimmtes Datum liefert keine Ergebnisse, da der SQL Server die Uhrzeit mit in den Vergleich einbezieht. Wie kann das Datum von der Uhrzeit getrennt werden?


Lösung:
Eine Funktion oder einen SQL-Befehl für das Splitten von Datum und Uhrzeit gibt es nicht.
Das Datum muß in einen String konvertiert werden. In der Online-Hilfe gibt es unter den Stichworten convert und cast eine Tabelle, in der die möglichen Konvertierungen der verschiedenen Datumsformate aufgelistet sind.
Ein Datum im Format "dd.mm.yyyy" kann über den Befehl Convert(datetime,convert(char(10),datumspalte,104)) konvertiert werden. Die Zahl 104 kennzeichnet hierbei das Format des Datums mit vierstelliger Jahrhundertzahl.

hoffe dir geholfen zu haben
ausprobieren kann ich das nicht weil: me=oracle
sorry
cu Micha


  


Betrifft: AW: Datum und SQL von: Stefan
Geschrieben am: 08.09.2004 16:16:09

Hallo,

hey danke!!!

So funktioniert es... Stimmt, sehr einfach... Wenn mans weiß... Gut, jetzt weiß ich, wo ich mich noch ein bisschen bilden sollte... ;))

Danke nochmal!

Viele Grüße,
Stefan


  


Betrifft: no prob danke für die rückmeldung :-) o.t von: y
Geschrieben am: 08.09.2004 19:31:44

.