Autor Beitrag
javax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Fr 12.06.09 16:59 
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
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 12.06.09 17:09 
user profile iconjavax hat folgendes geschrieben Zum zitierten Posting springen:
das datum ist mit folgendem format in der DB: 2009-12-03 00:00:00.000 sample_shift_DATETIME
Hoffentlich nicht - viel eher doch als "date"-Wert, also formatunabhängig. Und genauso formatunabhängig kannst du das Datum in die Query einfügen, nämlich mit SQL-Parametern: openbook.galileocomp...e95ecd103ddabd86eec1

_________________
>λ=
javax Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 12.06.09 18:50 
user profile iconjavax hat folgendes geschrieben Zum zitierten Posting springen:
--> Incorrect syntax near '.2009'.
Hört sich nicht gerade so an, als ob du jetzt Parameter verwenden würdest ;) ...

user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 12.06.09 22:22 
user profile iconjavax hat folgendes geschrieben Zum zitierten Posting springen:
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...
user profile iconjavax hat folgendes geschrieben Zum zitierten Posting springen:
ps: gibts hier in diesem forum keinen codetag?
Probier's mal mit dem "+" neben der Combobox, in der "C#" stehen sollte ;) (Editor-Sektion "Bereiche").

_________________
>λ=