![]() |
Datenbank: Pervasive • Version: 10.1 • Zugriff über: PDAC
SQL oder Delphi: Datumsbereich von Montag der Vorwoche bis Sonntag der Vorwoche
Hallo zusammen,
ich suche eine Möglichkeit den Datumsbereich vom Montag der Vorwoche bis zum darauffolgenden Sonntag der Vorwoche zu ermitteln, egal welchen Tag in der Woche ich das aufrufe. Das Datum liegt in einer Tabelle als String vor im Format JJJJMMTT. Es kann SQL sein oder Delphi. Ich habe zwar schon einiges ausprobiert, scheitere bei Pervasive aber an der Syntax. Ich erhalte immer ein "Expression evaluation Error". Z.B. Ermittlung des letzten Sonntages:
Code:
Vielen Dank schon mal vorab für eure Hilfe!
SELECT DATEADD(DAY, DATEDIFF(DAY, '19000107', CurDate()) / 7 * 7, '19000107')
|
AW: SQL oder Delphi: Datumsbereich von Montag der Vorwoche bis Sonntag der Vorwoche
Also erstmal mußt du den String in ein DATE umwandeln.
![]() Und dann einfach entweder zuerst "minus 7" oder am Ende, um in die letzte Woche zu kommen. Von dem Datum kannst du dir dann den Wochentag geben lassen, als Zahl, und mit dessen Wert dann den Wochenanfang und das Ende ausrechnen. z.B.: ![]() eventuell
SQL-Code:
oder
date_part('DOW', ...)
SQL-Code:
extract(dow from ...)
Vielleicht hat du Glück und es gibt in Pervasive auch schon was Fertiges, so ala ![]() ![]() Hier was zum Angucken:
Delphi-Quellcode:
function StartOfTheWeek(const AValue: TDateTime): TDateTime;
begin Result := DateOf(AValue) - (DayOfTheWeek(AValue) - 1); end; X := StartOfTheWeek(StrToDate(...)); |
AW: SQL oder Delphi: Datumsbereich von Montag der Vorwoche bis Sonntag der Vorwoche
Da war Himitsu doch etwas schneller....
so sollte es gehen:
Delphi-Quellcode:
var LastSunday, LastMonday : TDateTime;
day : integer; begin day := DayOfTheWeek(now()); LastSunday := IncDay(now(), -day); LastMonday := IncDay(LastSunday ,-6); end; |
AW: SQL oder Delphi: Datumsbereich von Montag der Vorwoche bis Sonntag der Vorwoche
Zitat:
Aber man kann diese Funktion bestimmt in eine DLL schieben, sie im DB-Server laden und dann verwenden. :angle: |
AW: SQL oder Delphi: Datumsbereich von Montag der Vorwoche bis Sonntag der Vorwoche
Zitat:
Code:
select dayofweek(convert('2005-02-05',sql_date))
--# oder select dayofweek(curdate()) Zitat:
Wenn Du den Wochentag hast, kannst Du den glaub ich auch bei Pervasive einfach verrechnen. Also curdate() - DOW+1 für letzten Montag oder so |
AW: SQL oder Delphi: Datumsbereich von Montag der Vorwoche bis Sonntag der Vorwoche
Hallo,
ich habe nicht kreativ genug nachgedacht.:oops: Ich wollte immer *zuerst* den Montag der Vorwoche ermitteln und dann den Sonntag (Denkweise VON Datum BIS Datum). Euer Schubs in die richtige Richtung hat mir weitergeholfen. Ich ermittle erst den letzten Sonntag und ziehe dann 6 Tage ab und lande somit auf den Montag der Vorwoche. Vielen Dank für Eure Unterstützung! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz