SQLExpress, MS Access, Datum/Uhrzeit

SQL Express von Boris Borzic

Moderator: Moderatoren

Antworten
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

SQLExpress, MS Access, Datum/Uhrzeit

Beitrag von georg »

Hallo,


für die Erstellung einiger Reports bin ich auf eine MS Access Tabelle angewiesen, die von der Personalabteilung "programmiert" wurde. Da jeder Satz n-fach vorkommt, und nur durch das Stichtagsdatum MONAT (so heisst das Feld, wirklich!) unterschieden werden kann, muss ich eine Anweisung

Code: Alles auswählen

SELECT * FROM PERS WHERE MONAT =
ausführen, nur mit dem, was nach dem Gleichheitszeichen kommt, habe ich meine Probleme.

MS Access sagt, es ist der Feldtyp "Datum/Uhrzeit". Greife ich das Feld mittels

Code: Alles auswählen

SELECT MONAT FROM PERS
ab, so liefert my SQLExpress z.B. "1997-01-01 00:00:00" als Feldinhalt zurück (ValType ist "C").

Nur verweigert Access die Gefolgschaft, wenn ich nun

Code: Alles auswählen

"SELECT * FROM PERS WHERE MONAT = '1997-01-01 00:00:00'"
ausführe, und auch ein Austausch des ' durch ein " ändert nichts.
= SQL ERROR ===========
Date: 20110318 09:37:34
C:\Entwicklungen\Access\rp.exe, Thread: 1
Windows XP 05.01 Build 02600 Service Pack 2, SQLXpp: 3.2.08, Runtime: 1.90.355
SQLState: 22018, ErrorCode:62506
[Microsoft][ODBC Microsoft Access Driver] Datentypen in Kriterienausdruck unverträglich.

Thread ID 1
Called from SQLSTATEMENT:EXECUTE(504)
Called from SQLSELECT:EXECUTE(1632)
Called from DOFIRSTREAD(54)
Called from MAIN(13)

SQLString: SELECT count(*) from PERS where MONAT = '1997-01-01 00:00:00'
lautet dann die Fehlermeldung. Im Moment bin ich ein wenig verwirrt ... Wer kann mir mit Entwirrung helfen?


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQLExpress, MS Access, Datum/Uhrzeit

Beitrag von brandelh »

Hi,

versuche es mal nur mit dem Datum im ISO Format:
'JJJJMMTT'
Gruß
Hubert
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: SQLExpress, MS Access, Datum/Uhrzeit

Beitrag von georg »

Hallo, Hubert -


also, das funktioniert in dem Aspekt, dass keine Fehlermeldung mehr kommt, dafür ist aber auch das result set leer ..., d.h. der count(*) liefert 0 als Ergebnis, obwohl Daten vorhanden sind.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQLExpress, MS Access, Datum/Uhrzeit

Beitrag von brandelh »

Hi,

ein Bekannter hat bei sich mit Access abgefragt und der String sieht so aus:

Wichtig ! US-Datumsformat !

SELECT * FROM PERS WHERE MONAT = #11/27/2011#

oder er verwendet Abfragen auf ... year('feld') = and ... vermutlich gibt es auch month() und day()

Bei Pablo gibt es aber auch noch die SQLExpress() Gruppe ;-)
Gruß
Hubert
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: SQLExpress, MS Access, Datum/Uhrzeit

Beitrag von georg »

Hallo, Hubert -


"Daumen hoch" Smily fehlt, aber das war die Lösung. Vielen Dank, jetzt muss ich die Daten weiter ausmisten ...


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQLExpress, MS Access, Datum/Uhrzeit

Beitrag von brandelh »

Hi,

Boris hat auf eine solche Anfrage diese Infos veröffentlicht:

Code: Alles auswählen

Date, Time, and Timestamp Syntax:
Syntax                         Format
{d 'value'}                    yyyy-mm-dd
{t 'value'}                    hh:mm:ss
{ts 'value'}                   yyyy-mm-dd hh:mm:ss
Eine Abfrage nach einem Zeitstempel müsste also so aussehen:

Code: Alles auswählen

select time from events where time > {ts '1997-01-16 08:50:43'}
Wenn man nur ein bestimmtes Datum will :

Code: Alles auswählen

select monat from database where monat = {d '1997-01-16'}
Wenn man einen bestimmten Monat sucht :

Code: Alles auswählen

select monat from database where year(month) = ? and month(monat)= ?
Bei der Syntax bin ich mir etwas unsicher, insbesondere wann man ' und wann " verwendet.
Einige setzen ' um Feldnamen, andere um Stringkonstanten, wofür wird " verwendet ?
Mit SQL bin ich noch etwas unsicher :D
Gruß
Hubert
Antworten