Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

AW: SQL-Server DatePart "m" = 12 + "yyyy" = 2012 bringt Daten aus 2011

  Alt 31. Jan 2013, 12:30
Man kann das auch anderst lösen:
Delphi-Quellcode:
jahr := 2012;
monat := 12;
ADOQuery1.SQL.Text := 'SELECT * FROM tStunden'#13#10+
'WHERE (MitarbeiterID = :MitarbeiterID)'#13#10+
'AND [DATE] >= :datevon AND [DATE] < :datebis';
ADOQuery1.Parameters.ParamValues['MitarbeiterID'] := '004';
ADOQuery1.Parameters.ParamValues['datevon'] := EncodeDate(jahr,monat,1);
Inc(monat);
if monat > 12 then begin monat := 1; Inc(jahr); end;
ADOQuery1.Parameters.ParamValues['datebis'] := EncodeDate(jahr {=2013},monat {=1},1);
ADOQuery1.Open;
Diese Vorgehensweise hat den Vorteil, dass man auch andere Zeitintervalle als nur einen Monat angeben kann.
Man beachte, dass der 1.1.2013 nicht in den Daten enthalten ist; der Zeitpunktt 31.12.2012 23:59:59 aber schon.
Dies funktioniert ohne Änderungen für MSAccess als auch für MS SQL Server 7/2000/2005/2008/2012.
  Mit Zitat antworten Zitat