Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Deutsche Datum nach Englisches Datum konvertieren? (https://www.delphipraxis.net/71737-deutsche-datum-nach-englisches-datum-konvertieren.html)

Karstadt 20. Jun 2006 13:00

Datenbank: Mysql • Version: 4.1 • Zugriff über: MYDAC

Deutsche Datum nach Englisches Datum konvertieren?
 
Hallo. Gibt Es eine Funktion die mir das Deutsche Datum in Englisches Datum formatiert?

Bei MYSQL kann ich nur mit Englieschen Datum die Abfragen starten?

momentan gehe ich so vor das ich Jahr, Monat, Tag auslese und in der Richtige Reihenfolge setze incl. '-'.

..mich würde Interessieren ob es vielleicht eine Funktion gibt, die schon in D7 Pro integriert ist..

Danke

alzaimar 20. Jun 2006 13:05

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Schau mal in der Delphi-Hilfe nach 'FormatDateTime'

Karstadt 20. Jun 2006 13:27

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Delphi-Quellcode:
Function EnglischesDatum(Datum:TDateTime):String;
begin
  Result := FormatDateTime('yyyy-mm-dd', Datum);
end;
:P

joachimd 20. Jun 2006 13:32

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Zitat:

Zitat von Karstadt
Bei MYSQL kann ich nur mit Englieschen Datum die Abfragen starten?

Nimm besser Parameter. Dann bist Du vom Datumsformat unabhängig.

Union 20. Jun 2006 13:38

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Wie Joachim schon sagte:
SQL-Code:
Select * from Test where Datumsfeld = :datum
und dann
Delphi-Quellcode:
Query.ParamByName('datum').AsDateTime := now;
Wenn Du aber unbedingt das Datum konvertieren willst:
Delphi-Quellcode:
procedure TForm1.TestButtonClick(Sender: TObject);
const
   LCID_ENUS : integer = 1033;
var
   dtDatum : TDate;
   FormatSettings : TFormatSettings;
begin
   dtDatum := date;
   Sysutils.GetLocaleFormatSettings(LCID_ENUS, FormatSettings);
   ShowMessage(DateToStr(dtDatum, FormatSettings));
end;
Eine Liste aller gültigen LCIDs: List of Locale ID (LCID) Values as Assigned by Microsoft

Karstadt 20. Jun 2006 14:24

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Das mit Param muss ich mir anschauen..

bzw.würde das auch mit Param funktionieren?

Delphi-Quellcode:
  with tabelle do
  begin
    Close;
    sql.text := 'SELECT * FROM TABELLE WHERE DATUM = '+QuotedStr(EnglischesDatum(StrToDateTime(ed_Datumfeld.text));
    Open;
  end;


aber diese Funktion würde doch auch funktionieren?

Delphi-Quellcode:
Function EnglischesDatum(Datum:TDateTime):String;
begin
  Result := FormatDateTime('yyyy-mm-dd', Datum);
end;

Union 20. Jun 2006 14:31

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Ja, mit Params würde das so aussehen:
Delphi-Quellcode:
with tabelle do
begin
   Close;
   sql.text := 'SELECT * FROM TABELLE WHERE DATUM = :datumswert';
   ParamByName('datumswert').AsDateTime := StrToDateTime(ed_Datumfeld.text);
   Open;
end;
Nur sollte die Eingabe in dem Datumsfeld vorher geprüft werden ob es ein gültiges Datum darstellt bzw. Du verwendest gleich eine entsprechende Eingabekomponente die von sich aus nur gültige Datumseingaben zuläßt.

Das mit dem FormatDateTime klappt natürlich auch. Aber wenn man mit Datums- und Zeitwerten arbeitet, sollte man auch möglichst die dafür vorgesehenen Datentypen verwenden. Das macht dann auch Berechnungen viel einfacher und man spart sich jede Menge Umwandlungen.

Karstadt 20. Jun 2006 14:39

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Zitat:

Ja, mit Params würde das so aussehen:
...ich muss gestehen, ich sehe keinen klaren (besseren) unterschied als meine Abfrage ohne Param. Ich werde das auf jeden Fall ausprobieren, danke.

Union 20. Jun 2006 14:42

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Dir ist aber schon aufgefallen, dass so die Funktion EnglischesDatum() nicht benötigt wird :stupid:

[edit] Und QuotedStr() auch nicht [/edit]

Karstadt 20. Jun 2006 14:47

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
:P ..das ist das..

Sharky 20. Jun 2006 16:38

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Zitat:

Zitat von Karstadt
.... Bei MYSQL kann ich nur mit Englieschen Datum die Abfragen starten? ...

Hai,

nur mal so am Rande. mySQL benutzt das deutsche Datumsformat. Aber die wenigsten Leute haben es auf ihrem Rechner eingestellt.

mkinzler 20. Jun 2006 16:47

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Zitat:

..ich muss gestehen, ich sehe keinen klaren (besseren) unterschied als meine Abfrage ohne Param. Ich werde das auf jeden Fall ausprobieren, danke.
Unabhängig von deinem Problem ( auch hier sehe ich große Vorteile der Paramterfunktion) können parametrisierte Abfragen eine Performancegewinn bringen. Da später nur noch die werte der Paramter übertragen werden müßen auch brauchst du dich nicht mehr um das Format der Daten und um das Quoten kümmern.

Sharky 20. Jun 2006 17:12

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Hai Karstadt,

warum machst Du es eigentlich nicht mit Parametern? Es ist ja nicht das erste mal das Du nach der übergabe des Datums bei mySQL fragst. Und auch da wurde vorgeschlagen mit Parametern zu arbeiten.

Union 20. Jun 2006 17:24

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Also ich denke da muss ich ihn mal in Schutz nehmen. Das scheint mir ein typischer Fall von Newbie-Mißbrauch einer Firma zu sein. So fangen EDV-Katastrophen an. Nichts wird geplant, alles wird ad hoc programmiert und beim Coden werden dann die konzeptionellen Problem egleich mit gelöst (oder es versucht, denn es gibt ja gar kein Konzept).

Dies ist nur mein ganz persönlicher Eindruck, entstanden aus der Verfolgung von Karstadt's Postings der letzten Zeit. Ich denk es würde sich lohnen mal den Gesamtumfang des Projektes zu kennen und dann zu ermitteln was man dafür braucht. Und das ganze muß natürlich auch auf einer guten programmtechnischen Basis stehen. Wenn man nicht unendlich Zeit hat, kann man sich nicht noch im Projekt das Programmieren beibringen.

Karstadt 21. Jun 2006 07:06

Re: Deutsche Datum nach Englisches Datum konvertieren?
 
Zitat:

Ich denk es würde sich lohnen mal den Gesamtumfang des Projektes zu kennen und dann zu ermitteln was man dafür braucht.
Das ist nicht so einfach. Es kommen fast täglich Änderungen / Neuerungen / Verbeserungen in das Projekt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 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