Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - sqlserver datum vergleichen
javax - Fr 12.06.09 16:59
Titel: sqlserver datum vergleichen
hallo
ich möchte per select einen datensatz bekommen, bei dem die gespeicherte zeit mit der übergebenen datetime übereinstimmt
das datum ist mit folgendem format in der DB: 2009-12-03 00:00:00.000 -->sample_shift_DATETIME
rufe ich jedoch dateTime[.ToString()] auf, bekomme ich folgendes format: 03.12.2009 00:00:00 -->shift.ShiftDate
wie muss ich die WHERE klausel formulieren?
momentan sieht sie so aus:
WHERE sample_shift_DATETIME = '" + shift.ShiftDate + "'
mfg
javax - Fr 12.06.09 17:29
also kann ich ein DateTime in der Datenbank ohne weiteres mit einem DateTime meiner Software vergleichen?
habe es jetzt so gemacht, aber leider kommt dann folgender fehler wenn ich ExecuteReader ausführe:
--> Incorrect syntax near '.2009'.
JüTho - Fr 12.06.09 17:52
Wo ist bloß meine Glaskugel...
Zitat: |
--> Incorrect syntax near '.2009'. |
Wie lautet denn der zugehörige
CommandText, wie wurde der DateTime-Wert an den Parameter übergeben?
Zitat: |
also kann ich ein DateTime in der Datenbank ohne weiteres mit einem DateTime meiner Software vergleichen? |
Natürlich; du musst lediglich berücksichtigen, dass ein DateTime-Wert sowohl im Programm als auch in der DB mit oder ohne Zeit stehen kann.
Jürgen
Kha - Fr 12.06.09 18:50
javax hat folgendes geschrieben : |
--> Incorrect syntax near '.2009'. |
Hört sich nicht gerade so an, als ob du jetzt Parameter verwenden würdest ;) ...
JüTho hat folgendes geschrieben : |
du musst lediglich berücksichtigen, dass ein DateTime-Wert sowohl im Programm als auch in der DB mit oder ohne Zeit stehen kann. |
Bei System.DateTime hast du natürlich recht, bei der Übertragung wird der "Zeit"-Anteil aber abgeschnitten, zumindest bei
date (2008+).
javax - Fr 12.06.09 22:14
vielen dank für eure antworten!
der datenbankteil wurde von einem anderen gemacht. bei diesem funtkioniert der code angeblich einwandfrei, aber wenn ich ihn teste um ihn ins projekt einzubinden, funktioniert diese methode nicht mehr.
hier ist der fehlerhafte teil der methode:
typen in der DB sind die selben wie im programm!
sample_shift_usr_id und shift.Responsible_user --> INT
sample_shift_DATETIME und shift.ShiftDate --> DATETIME
public List<Sample> GetSamples(Shift shift)
{
try
{
samples = new List<Sample>();
sc = new SqlConnection(conString);
scd = new SqlCommand("SELECT * FROM sample WHERE sample_shift_usr_id = " + shift.Responsible_user + " AND sample_shift_DATETIME = " + shift.ShiftDate, sc);
scd.Connection.Open();
SqlDataReader sdr = scd.ExecuteReader(); <-- Hier wird laut Debugger die Exception geworfen
while (sdr.Read())
{
....
zur weiteren info:
der andere benutzt VS 2005 PRO Deutsch und ich VS 2008 PRO English. vielleicht hindert die lokalen-einstellung daran, dass es unterschiedliche Datumsformate gibt?! (zumindest gibts in java eine "Locale" klasse um regionsspezifische ausgaben zu machen)
ps: gibts hier in diesem forum keinen codetag?
Kha - Fr 12.06.09 22:22
javax hat folgendes geschrieben : |
vielen dank für eure antworten! |
Sieht aber ehrlich gesagt nicht so aus, als ob du sie durchgelesen hättest, von Parametern jedenfalls keine Spur in deinem Code :nixweiss: . Klick doch bitte mal auf den geposteten Link...
javax hat folgendes geschrieben : |
ps: gibts hier in diesem forum keinen codetag? |
Probier's mal mit dem "+" neben der Combobox, in der "C#" stehen sollte ;) (Editor-Sektion "Bereiche").
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!