![]() |
Datenbank: ADS • Version: 6.2 • Zugriff über: SQL
Formate in SQL ändern
Hallo
Ich habe folgenden SQL String.
SQL-Code:
Mein Problem ist, das "DA.verliehen am" als Date gespeichert ist.der Rest sind alles Stringfelder.
SELECT DA.id_daten
, DA.titel , DA.filmlaenge , DA.isbn , DA.erstellt , DA.geaendert , DA.sid_Genre , DA.sid_Format , DA.sid_verliehen , DA.verliehen_Vorname , DA.verliehen_Name , DA.verliehen_PLZ , DA.verliehen_Ort , DA.verliehen_Tel , DA.verliehen_am , FA.id_format , FA.format , GR.id_genre , GR.genre , WG.name , WG.id_verliehen FROM tbl_daten DA LEFT OUTER JOIN tbl_format FA ON (DA.sid_format=FA.id_Format) LEFT OUTER JOIN tbl_genre GR ON (DA.sid_genre=GR.id_Genre) LEFT OUTER JOIN tbl_weg WG ON (DA.sid_verliehen=WG.id_verliehen) WHERE ((UPPER(DA.titel) like :p1) OR (UPPER(DA.filmlaenge) like :p1) OR (UPPER(DA.isbn) like :p1) OR (UPPER(DA.verliehen_Vorname) like :p1) OR (UPPER(DA.verliehen_am) like :p1) OR (UPPER(FA.format) like :p1) OR (UPPER(GR.Genre) like :p1)) order by DA.Titel ASC wie kann ich in meinem SQL-Sring dieses Feld in meine Suchfunktion einbeziehen? MfG...Klaus |
Re: Formate in SQL ändern
Hallo Klaus,
du musst Felder, die keine String-Felder sind, per CAST() in einen String umwandeln bevor du sie mit LIKE untersuchen kannst. Grüße vom marabu |
Re: Formate in SQL ändern
Es wäre nett wenn sie mir zeigen würden wie ich es wo in meinem String einbinde.
Danke |
Re: Formate in SQL ändern
Die übliche Syntax ist:
SQL-Code:
In diesem Forum duzen sich alle...
SELECT CAST(Da.verliehen_am AS VARCHAR(10)) AS verliehen_am FROM ...
Freundliche Grüße vom marabu |
Re: Formate in SQL ändern
Mein ADS scheint mit CAST ein Problem zu haben.
folgende Fehlermeldung: ![]() Danke für dein Bemühen. Mfg...Klaus |
Re: Formate in SQL ändern
Das sieht mir eher nach einem groben Syntaxfehler aus. Vielleicht hätte ich dir genauer schreiben sollen, wie du es angehen musst. Ersetze diese Zeile:
SQL-Code:
durch hier diese Zeile:
(UPPER(DA.verliehen_am) like :p1) OR
SQL-Code:
Dann sollte es funktionieren.
(CAST(DA.verliehen_am AS VARCHAR(10)) like :p1) OR
marabu edit: 1 und lowercase(L) in :p1 verwechselt... |
Re: Formate in SQL ändern
Das selbe in Grün.
Ich werde Morgen ein wenig meine Bücher durchkämpfen und mich bei Gelegenheit noch mal melden. Danke Klaus |
Re: Formate in SQL ändern
Hallo
So ich noch mal...ich komme nicht weiter. Es scheint was mit der Formatierung des Strings zu tun zu haben. HILFE !!!!!! MfG...Klaus |
Re: Formate in SQL ändern
Ich kenne ADS nicht, aber vergleicht man daten nicht mit 'BETWEEN'?
Ich mache es immer so:
SQL-Code:
Von Delphi aus:
Select * from MyTable Where MyDateTimeColumn Between :Date and :DateNextDay
Delphi-Quellcode:
'Between' hat den Vorteil, das ein eventueller Index voll zur Geltung kommt. Nur die besten Optimierer erkennen bei einem Cast auf ein VarChar und eine Filterung per 'LIKE', das ein Index verwendet werden kann. Between dagegen ist hier optimal.
...
MyQuery.Params.ParamValues['Date'] := MyDate; MyQuery.Params.ParamValues['DateNextDay'] := MyDate+3599/3600; // also nicht ganz + 1 Tag, sondern +23:59 ... |
Re: Formate in SQL ändern
Zitat:
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 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