Unterschied OleDB Datums Abfrage

27/11/2008 - 18:39 von AWaning | Report spam
Hallo

unter SQL 2005 setzte ich folgende SQL Abfrage ab:

Select * from RechnungsTable where RechnungDatum > '2008.20.20'

Unter Access funktioniert das nicht.
Welchen SQL String muss ich unter Access absetzten ?

Danke
Andreas
 

Lesen sie die antworten

#1 Elmar Boye
28/11/2008 - 09:16 | Warnen spam
Hallo Andreas,

AWaning schrieb:
unter SQL 2005 setzte ich folgende SQL Abfrage ab:

Select * from RechnungsTable where RechnungDatum > '2008.20.20'

Unter Access funktioniert das nicht.



Unter SQL Server auch nicht, denn den einen 20 Monats-Kalender
kennt er meines Wissens nicht ;-)

Welchen SQL String muss ich unter Access absetzten ?



Access verwendet für Datümmer das gleiche Format wie VB(.NET)/VBA,
dabei wird das Datum durch Rauten begrenzt, z. B. #28/11/2008#

Damit Du Dich darum aber nicht kümmern mußt, ist der Einsatz
eines OleDbParameter sinnvoll.

command.CommandText = "SELECT * FROM RechnungsTable "
+ "WHERE RechnungDatum > ?";
command.Parameters.Add("@Rechnungdatum", OleDbType.DbTimeStamp)
.Value = new DateTime(2008, 11, 28);

Das gleiche kannst Du auch beim SQL Server mit OleDb verwenden.
Für den Sql Client wàre das "?" durch einen benannten Parameter
zu ersetzen und ein SqlDbType zu verwenden.

command.CommandText = "SELECT * FROM RechnungsTable "
+ "WHERE RechnungDatum > @RechnungsDatum?";
command.Parameters.Add("@RechnungDatum", SqlDbType.DateTime)
.Value = new DateTime(2008, 11, 28);

Gruß Elmar

Ähnliche fragen