![]() |
Problem mit Uhrzeit in Access und einer SQL-Querey...
Das Problem:
Eine MDB mit einem Feld "ZEIT" in der eine Zeit im kurzformat z.B. "00:30" für 30 Minuten steht. Wenn ich in einer ADO-Query jetzt das feld selectiere gibt er mit logischerweise immer "30.12.1899 00:30:00" zurück. Ich brauche aber nur die Zeit. Was muss ich in die Query schreiben damit er mir tatsächlich nur "00:30" zurückgibt ? Ich habs schon mit select Datepart('h',zeit) probiert, aber der gibt mir nur EINEN teil eines datum wieder, stunden ODER Minuten. Hat jemand ne Idee ? |
Re: Problem mit Uhrzeit in Access und einer SQL-Querey...
Hallo,
wie wäre es damit?
SQL-Code:
SELECT Datepart('h', zeit) & ":" & Datepart('n', zeit) AS MeineZeit, ...
|
Re: Problem mit Uhrzeit in Access und einer SQL-Querey...
Zitat:
Du musst das DisplayFormat des Felder auf 'hh:nn' ändern:
Delphi-Quellcode:
procedure ....AfterOpen(Dataset:TDataset);
begin (Dataset.FieldByName('Uhrzeit') As TDateTimeField).DisplayFormat := 'hh:nn'; end; |
Re: Problem mit Uhrzeit in Access und einer SQL-Querey...
Danke euch, das funkioniert soweit wunderbar.
Eine Frage hätte ich da noch: Ich habe also das ADODataset, eine Datasource und ein DBDgrid. Wenn ich jetzt im DBdgrid einen einen neuen Datensatz erzeuge, gibt es einen Möglichkeit das er diesen "automatisch" mit dem aktuellen datum versieht damit man in der tabelle später sieht wann genau der datensatz angelegt wurde ? Analog dazu müsste bei jedem neuen datensatz die nummer des aktuell angeldeten benutzers mit rein die in einer globalen variable steht. Damit man auch noch sehen kann WER den datensatz angelegt hat. Ist sowas machbar ? Danke schonmal. |
Re: Problem mit Uhrzeit in Access und einer SQL-Querey...
Zitat:
Delphi-Quellcode:
Wenn du den Zeitpunkt der letzten Änderung setzen möchtest:
procedure .....AfterInsert(Dataset: TDataset);
begin Dataset['CreateDateTime'] := SysUtils.Now; Dataset['CreatedBy'] := globaluserName; end;
Delphi-Quellcode:
procedure .....BeforePost(Dataset: TDataset);
begin Dataset['LastChange'] := SysUtils.Now; end; |
Re: Problem mit Uhrzeit in Access und einer SQL-Querey...
Danke schön .ci habs ziwschenzeitlich andres gemacht, funktioniert komischerweise trotzdem:
Im ADODatase bei OnNewRecord einfach Dataset.FieldByName('sz_datum').AsDateTime:=Now; Dataset.FieldByName('sz_Pid').AsInteger:=Benutzer. NutzerKennZahl; Hat Diese mthode einen nachteil gegenüber der von dir beschriebenen ? |
Re: Problem mit Uhrzeit in Access und einer SQL-Querey...
Zitat:
Im Sourcode sieht das so aus:
Delphi-Quellcode:
In OnNewRecord kann man durch Erzeugen einer Exception den Einfügevorgang noch abbrechen,
procedure TDataSet.EndInsertAppend;
begin SetState(dsInsert); try DoOnNewRecord; // <------ except UpdateCursorPos; FreeFieldBuffers; SetState(dsBrowse); Resync([]); raise; end; FModified := False; DataEvent(deDataSetChange, 0); DoAfterInsert; // <------ DoAfterScroll; end; in AfterInsert ist dies nicht möglich. Ansonsten kann man beide Events als gleichwertig betrachten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 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