Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datum aus DB Datensatz in dieser Woche / Monat (https://www.delphipraxis.net/90955-datum-aus-db-datensatz-dieser-woche-monat.html)

Salomon 26. Apr 2007 14:15

Datenbank: MS SQL Server Express • Zugriff über: ADO

Datum aus DB Datensatz in dieser Woche / Monat
 
Hallo,
ich müsste per SQL Datensätze filtern. Und zwar möchte ich alle Datensätze auswählen deren Datum "Heute / In dieser Woche / In diesem Monat" liegt. Wie mache ich das am besten?

Gibt es da besondere SQL Befehle die ich nutzen kann, oder muss ich per Delphi irgendwie ermitteln welchen Datumsangaben z.B. die Woche eingerenzen und dann per SQL Between Befehl die Datenbank abfragen?

SQL-Code:
SELECT * FROM TB_Issues Where DueDate between ('01.01.2005') and ('01.01.2007');
Ich hoffe es gibt da einen einfacheren Weg...

Thanx
Marcus

mkinzler 26. Apr 2007 14:24

Re: Datum aus DB Datensatz in dieser Woche / Monat
 
SQL-Code:
Extract(Year/month from ...)

Salomon 26. Apr 2007 14:37

Re: Datum aus DB Datensatz in dieser Woche / Monat
 
Mit Extract bekomme ich es nicht hin, so gehts aber auch:

SQL-Code:
SELECT * FROM TB_Issues
WHERE
 MONTH(DueDate) = MONTH(GETDATE());

hoika 26. Apr 2007 16:54

Re: Datum aus DB Datensatz in dieser Woche / Monat
 
Hallo,

dein MONTH könnte aber performance-Probleme bringen,
weil vielleicht kein Index benutzt werden kann.

Ich ermittle Start- und Enddatum immer selber
und mache dann ein


Where (RecDate>=:StartDate) and (recDate<=:EndDate)


Heiko

Salomon 27. Apr 2007 08:46

Re: Datum aus DB Datensatz in dieser Woche / Monat
 
@hoika: kannst du mir ein paar tipps geben wie du ermittelst ob ein Datum in dieser Woche / Monat liegt? Mir fällt da gerade gar kein Ansatz ein wie ich ran gehen soll.
Mir ist nämlich aufgefallen das es z.B. kein SQL WEEK Befehl gibt. Außerdem wäre die "Between" funktion flexibler....

@mkinzler: Wie soll das mit "EXTRACT" funktionieren. Das verstehe ich noch nicht so ganz.

Sharky 27. Apr 2007 08:58

Re: Datum aus DB Datensatz in dieser Woche / Monat
 
Zitat:

Zitat von Salomon
@hoika: kannst du mir ein paar tipps geben wie du ermittelst ob ein Datum in dieser Woche / Monat liegt? Mir fällt da gerade gar kein Ansatz ein wie ich ran gehen soll....

Hai Salomon,

versuche es mal so:
Delphi-Quellcode:
uses
  DateUtils;

procedure TDemo_Form.btn_ThisWeekClick(Sender: TObject);
var
  first_date_of_the_week: TDate;
  last_date_of_the_week: TDate;
begin
  first_date_of_the_week := StartOfTheWeek(date);
  last_date_of_the_week := EndOfTheWeek(date);
  ShowMessageFmt('Diese Woche geht vom %s bis zum %s',
    [DateToStr(first_date_of_the_week), DateToStr(last_date_of_the_week)]);
end;
Für den Monat dann mit Delphi-Referenz durchsuchenStartOfTheMonth und Delphi-Referenz durchsuchenEndOfTheMonth arbeiten.

Salomon 27. Apr 2007 09:23

Re: Datum aus DB Datensatz in dieser Woche / Monat
 
Moin Sharky,
das sind ja super Funktionen :) Danke!

Ich implementier das gleich mal...

Gruß
Marcus


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz