Delphi-PRAXiS
Seite 1 von 2  1 2      

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..


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.
Seite 1 von 2  1 2      

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