Seite 1 von 1

Datum aus SQL-Datenbank auslesen

Verfasst: 04.01.2005 11:28
von JKG
Hallo Zusammen !

Ich bin gerade dabei, eine MS-SQL Datenbank mit Hilfe eines
ListIconGadget anzuzeigen. Die Datenbank ist über
ODBC erreichbar.

Soweit funktioniert alles. Nur bekomme ich in den Feldern, in denen eine Uhrzeit bzw. ein Datum steht keine richtigen Werte zurück.
Ich habe das Feld ausgelesen und dann versucht es mit FormatDate() zu formatieren. Ohne Erfolg !

Kann mir da jemand weiterhelfen ? Schonmal herzlichen Dank und

viele Grüße

Jörg

Verfasst: 04.01.2005 15:15
von Unimatrix Zero
Hallo Jörg,

die Datumswerte in einer MS-SQL Datenbank werden als Double gespeichert.
Es gab hier mal irgendwo einen Thread, der beschrieb wie man aus einer API-Funktion einen Double als Rückgabewert bekommen kann, ich fürchte allerdings, da man ja nur "GetDatabaseLong" als Befehl hat, daß das nicht so einfach geht.
Ich habe damals kurzer Hand meine Datumswerte in den SQL Tabellen so umformatiert, daß ich mit Longs zurechtkam (20050104 Bspw. als Datum) oder eben als String ( hat aber den Nachteil, daß sich die Daten u.U. nicht mehr richtig sortieren lassen).
Du könntest natürlich auch bei der Abfrage versuchen mit einem "Convert" Befehl im SQL, die Datumswerte vorher in einen String umzuwandlen oder über den "DatePart" Befehl Dir die Einzelteile des Datums als LongWerte abfragen.

Verfasst: 04.01.2005 16:22
von JKG
Hallo Unimatrix Zero !

Zunächst herzlichen Dank für Deine Antwort.
Die Sache mit dem CONVERT habe ich mittlerweile auch
ein paarmal im Internet gefunden. Da ich aber nicht aus
der SQL-Ecke komme, wollte ich dich fragen, ob du es
ein klein wenig genauer beschreiben kannst.

Bei mir sieht das folgender Maßen aus.

Ich habe ein Datenbankfeld vom Typ >datetime<.
Dort steht ja dann jede Menge drin. Langes Datum
incl. einer Uhrzeit.

Was müßte ich denn tun? Bei jedem SELECT Befehl
diesen CONVERT Befehl einfügen ???

Wäre nett, wenn Du mir noch mal weiterhelfen könntest.

Danke und Gruß

Jörg

Verfasst: 04.01.2005 18:09
von Unimatrix Zero
Hallo Jörg,

kein Problem.
Die Syntax für Convert lautet:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Ein Beispiel wie man mit dem Convert-Befehl eine SQL Abfrage gestalten kann:

Code: Alles auswählen

select convert(nvarchar,DeinDatumsFeld,104) as DatumString from DeineTabelle where DeineBedingung
Der Wert 104 ergibt sich aus einer Tabelle und stellt die Art dar, wie der String ausgegeben werden soll, in diesem Falle im Format "dd.mm.yyyy"
Leider kann ich gerade auf die schnelle keinen passenden Link finden und ich will jetzt auch nicht die ganze Liste von möglichen Werten hier kopieren.
Falls Du sie benötigst, schicke ich sie Dir selbstverständlich zu.

Verfasst: 04.01.2005 18:31
von Unimatrix Zero
Hallo Jörg,

jetzt habe ich doch noch einen Link gefunden:

http://msdn.microsoft.com/library/defau ... o_2f3o.asp

Verfasst: 04.01.2005 20:22
von JKG
Hallo Unimatrix Zero !

Herzlichen Dank ! War wirklich sehr nett von Dir.
Es funktioniert prima !


Gruß Jörg