![]() |
Datenbank: Interbase • Zugriff über: IbStoredProc, IBDataSet
SQL Datum umwandeln?!?
Hi,
ich möchte die datensätze aus der tabelle, nach dem datum sotiert, auf verschiedene stringgrids verteilen. Daher möchte ich das datum, besser gesagt das jahr, auslesen um herauszubekomme wieviel tabellen ich brauche. Ich möchte gleich doppelte Datums (Jahr) verhindern, aber wie machen ich das?
Delphi-Quellcode:
Kann ich das format so ändern, dass man nur das jahr betrachtet?
Select distinct ABLESEDATUM, ABLESE_NR from tabelle
Plautzer |
Re: SQL Datum umwandeln?!?
Moin,
Hier die gesuchte Funktion :
SQL-Code:
Tschüss,
EXTRACT(YEAR FROM ABLESEDATUM)
Lutz |
Re: SQL Datum umwandeln?!?
Ich danke dir,
wie benutzte ich aber diese funktion? So funktioniert sie nicht:
Delphi-Quellcode:
Es kommt die Fehlermeldung; ibdataset1: Das feld 'Ablesedatum' wurde nicht gefunden.
Select distinct EXTRACT(YEAR FROM ABLESEDATUM), ABLESE_NR from ABRECHNUNG
Plautzer |
Re: SQL Datum umwandeln?!?
Im Prinzip genau so wie Du geschrieben hast.
Unter Umständen noch ein as AUSGABEJAHR hinzufügen um dem Feld einen Namen zu geben und im Feldeditor der Query-Kompo entsprechend anpassen. Durch die Verwendung einer Funktion im Select (z.B. SUM oder auch extract) geht der eigentliche Feldname flöten und wenn Du diesen im Feldeditor der Komponente explizit angegeben hast, kommt es zu einem Fehler. Ich hoffe jedenfalls mal, dass das der Grund ist. Tschüss, Lutz |
Re: SQL Datum umwandeln?!?
Hi,
es funzt! Ich hatte vergessen das feld 'ablesedatum' aus dem ibdataset zu löschen. Wie mach ich es aber das sich das DISTINCT nur auf das ablesejahr bezieht, falls ich mehrere spalten auslesen will?
Delphi-Quellcode:
So werden die doppelten einträge bei nr und name auch weggestrichen, wie verhindere ich das?
Select Distinct ... As Ablesejahr, Nr, Name etc.
Dank dir. Plautzer |
Re: SQL Datum umwandeln?!?
Hi,
Zitat:
Gegeben sei folgende Tabelle :
Code:
Du willst alle drei Felder haben, aber jedes Jahr soll nur einmal vorkommen, richtig ?
Tabelle 1
NR NAME DATUM ======================== 1 ABC 1/1/1980 2 XYZ 1/1/1980 Was soll er Dir denn bei der oben angegebenen Tabelle zurückgeben : 1,ABC,1980 oder doch eher 2,XYZ,1980 ???? Die Entscheidung kann er wohl nicht für Dich treffen. Deshalb gilt DISTINCT "global" für alle Felder im SELECT. Tschüss, Lutz |
Re: SQL Datum umwandeln?!?
Achso,
kleiner Denkfehler meinerseits :roll: Dank dir! Plautzer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz