AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit Uhrzeit in Access und einer SQL-Querey...
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Uhrzeit in Access und einer SQL-Querey...

Ein Thema von Killerloop · begonnen am 13. Jan 2005 · letzter Beitrag vom 13. Jan 2005
Antwort Antwort
Killerloop

Registriert seit: 16. Mai 2004
44 Beiträge
 
#1

Problem mit Uhrzeit in Access und einer SQL-Querey...

  Alt 13. Jan 2005, 10:04
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 ?
the meaning of life is to become a legend...
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Problem mit Uhrzeit in Access und einer SQL-Querey...

  Alt 13. Jan 2005, 10:53
Hallo,

wie wäre es damit?
SELECT Datepart('h', zeit) & ":" & Datepart('n', zeit) AS MeineZeit, ...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Problem mit Uhrzeit in Access und einer SQL-Querey...

  Alt 13. Jan 2005, 11:03
Zitat von Killerloop:
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 ?
Nicht die Query muss geändert werden, sondern die Darstellung in deiner Anwendung!
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;
Andreas
  Mit Zitat antworten Zitat
Killerloop

Registriert seit: 16. Mai 2004
44 Beiträge
 
#4

Re: Problem mit Uhrzeit in Access und einer SQL-Querey...

  Alt 13. Jan 2005, 11:51
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.
the meaning of life is to become a legend...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Problem mit Uhrzeit in Access und einer SQL-Querey...

  Alt 13. Jan 2005, 12:18
Zitat von Killerloop:
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.
Die Daten werden im Event AfterInsert gesetzt:
Delphi-Quellcode:
procedure .....AfterInsert(Dataset: TDataset);
begin
   Dataset['CreateDateTime'] := SysUtils.Now;

   Dataset['CreatedBy'] := globaluserName;
end;
Wenn du den Zeitpunkt der letzten Änderung setzen möchtest:
Delphi-Quellcode:
procedure .....BeforePost(Dataset: TDataset);
begin
   Dataset['LastChange'] := SysUtils.Now;
end;
Andreas
  Mit Zitat antworten Zitat
Killerloop

Registriert seit: 16. Mai 2004
44 Beiträge
 
#6

Re: Problem mit Uhrzeit in Access und einer SQL-Querey...

  Alt 13. Jan 2005, 12:22
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 ?
the meaning of life is to become a legend...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Problem mit Uhrzeit in Access und einer SQL-Querey...

  Alt 13. Jan 2005, 12:54
Zitat von Killerloop:
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 ?
OnNewRecord zeitlich wird vor AfterInsert aufgerufen.
Im Sourcode sieht das so aus:
Delphi-Quellcode:
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 OnNewRecord kann man durch Erzeugen einer Exception den Einfügevorgang noch abbrechen,
in AfterInsert ist dies nicht möglich.
Ansonsten kann man beide Events als gleichwertig betrachten.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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