![]() |
Datenbank: MSSQL Express • Version: 2019 • Zugriff über: delphi 10.4
Datumsformat aus View im Grid falsch
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich bekomme es nicht hin das Datum im Grid im deutschen Format anzuzeigen. Der Zugriff erfolgt über ADO und aus einer Sicht SELECT CONVERT(Date, dbo.Lagerbuchungen.BuchungAm, 104) AS Datum SQl-Server Express und Managment Studio sind auf German eingestellt PC natürlich auch und Displayformat gibt es anscheinend nicht bei einem Select aus seiner View. Komplette View sieht so aus: SELECT CONVERT(Date, dbo.Lagerbuchungen.BuchungAm, 104) AS Datum, dbo.Lagerbuchungen.Menge, dbo.Lagerbuchungen.BestandNeu AS neu, dbo.Lagerbuchungen.Mitarbeiter, dbo.Lagerbuchungen.Rechner, dbo.Lagerbuchungen.Lieferschein, dbo.Lagerbuchungen.Entnahmeschein, dbo.Lagerbuchungen.Buchungshinweis, dbo.Lieferanten.Firma1 AS Lieferant, dbo.Artikel.Artikelnr, dbo.Artikel.Artikelbezeichnung, dbo.Artikel.Min, dbo.Baustellen.Bauvorhaben, dbo.Baustellen.Auftragsnr, dbo.Bautrupp.Bautrupp, dbo.Kunden.Firma1 AS Kunde, dbo.Artikel.Hersteller, dbo.Lagerbuchungen.BuchungVon, dbo.Lagerbuchungen.Id, dbo.Artikel.Ist FROM dbo.Lagerbuchungen LEFT OUTER JOIN dbo.Kunden ON dbo.Kunden.Id = dbo.Lagerbuchungen.KundeId LEFT OUTER JOIN dbo.Baustellen ON dbo.Baustellen.Id = dbo.Lagerbuchungen.BaustelleId LEFT OUTER JOIN dbo.Bautrupp ON dbo.Bautrupp.Id = dbo.Lagerbuchungen.BautruppId LEFT OUTER JOIN dbo.Lieferanten ON dbo.Lieferanten.Id = dbo.Lagerbuchungen.LieferantId LEFT OUTER JOIN dbo.Artikel ON dbo.Artikel.Id = dbo.Lagerbuchungen.ArtikelId WHERE (dbo.Lagerbuchungen.Id IS NOT NULL) |
AW: Datumsformat aus View im Grid falsch
Warum überhaupt die Konvertierung im Server? Wenn das Datumsfeld in Delphi-Programm ankommt sollte die Formatierung eigentlich automatisch anhand der Windows-Einstellungen erfolgen.
|
AW: Datumsformat aus View im Grid falsch
Datum als einen DateTime/TimeStamp-Typ zurückgeben, welches die Komponenten im Client-Programm verstehen ... das wird dann "standardmäßig" mit den aktuellen lokalen Sprachsettings angezeigt.
|
AW: Datumsformat aus View im Grid falsch
Hallo,
ich brauche nur das Datum ohne Zeit deshalb die Konvertierung sonst funktionieren meine Filter im Grid nicht mehr. |
AW: Datumsformat aus View im Grid falsch
Hier mal eine Idee:
Delphi-Quellcode:
Dazu im SQL die Konvertierung entfernen.
procedure TForm1.AfterOpen(DataSet: TDataSet);
var i : Integer; begin for i := 0 to DataSet.Fields.Count - 1 do begin case DataSet.Fields[i].DataType of ftDate, ftDateTime : TDateTimeField(DataSet.Fields[i]).DisplayFormat := 'DD.MM.YYYY'; end; end; end; |
AW: Datumsformat aus View im Grid falsch
Das funktioniert aber nur solange die Filter auf das DisplayFormat reagieren.
|
AW: Datumsformat aus View im Grid falsch
Naja, die können ja den Datumswert aus der Spalte immer per Trunc nehmen, dann ist auch im Filter der Zeitanteil weg. Oder per Filter := FormatDateTime('dd.mm.yyyy',Datumsspalte)
Für eine garantiert funktionierende Lösung fehlen noch zuviele Informationen. Wie sehen die Filter aus? Wie werden sie zusammengebaut. Sollen sie für weitere, aus der DB oder sonstwoher, zu holende Daten dienen, oder soll einfach nur im Grid eine Teilmenge selektiert werden, oder, oder, oder ...? |
AW: Datumsformat aus View im Grid falsch
Zitat:
Code:
Allerdings fängst du dir damit Folgeprobleme ein. Falls du z.B. Datumsfilter nutzt, dürften die nicht mehr richtig funktionieren, da ein varchar/String nunmal kein date/TDate ist.
SELECT CONVERT(Varchar, dbo.Lagerbuchungen.BuchungAm, 104) AS Datum
Irgendwo hast du eine grundsätzlich fehlerhafte Einstellung, was das Datumsformat betrifft. Das kann in Windows sein, in den DB-Komponenten, in den Anwendungseinstellungen, etc. Das ist der Fehler, der behoben werden muss. |
AW: Datumsformat aus View im Grid falsch
Dafür habe ich meine kleine SQL-Funktion; geht natürlich auch ohne sep. Funktion - so kommt am Ende ein echtes TDateTimeField ohne Zeitanteil raus
ALTER FUNCTION [dbo].[GetDatePart] (@DateTimeValue datetime) RETURNS datetime AS BEGIN RETURN (CONVERT(DateTime, CONVERT(Char, @DateTimeValue, 104), 104)) END |
AW: Datumsformat aus View im Grid falsch
Imho würde hier ein Einfaches cast(<DateTimeValue> as date) eventuell Wunder wirken.
Die Wandlung in die deutsche Darstellung dd.mm.yyyy sollte dann entweder die anzeigende Komponente oder der entsprechende Eventhandler erledigen. Soll die DB das Datum formatiert (dann aber als String/char) liefern: format(<DateTimeValue>, 'dd.MM.yyyy') Alternativ format(<DateTimeValue>, 'd', 'de-de') |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 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