Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Vergleichen von strings in der datenbank (https://www.delphipraxis.net/110657-vergleichen-von-strings-der-datenbank.html)

OG Karotte 21. Mär 2008 22:43

Re: Vergleichen von strings in der datenbank
 
SQLite speichert Datumswerte normalerweise als Strings im Format YYYY-MM-DD.

Wenn das befüllen der Datenbank also so stattgefunden hat, dann sollten die Daten auch im korrekten Format vorliegen. Bei einem einfachen SELECT bzw. der Ausgabe per z.B. FieldByName('erstellt').AsString über die ZEOS bekommt er durchaus die Rückgabe im deutschen Datumsformat (gerade getestet).

Sind die Daten allerdings im Format DD.MM.YYYY als String gespeichert worden, dann...


...weiß ich im Augenblick auch nicht weiter.

sx2008 21. Mär 2008 22:45

Re: Vergleichen von strings in der datenbank
 
Zitat:

Zitat von tmrxxoja
Problem ist es sind keine datums felder sondern strings

Das ist wirklich DUMM.
Entweder du speicherst die Felder als DATE-Feld oder als Stringfeld in dem Format:
JJJJMMTT (Beispiel: 20080321)
Andernfalls kannst du nicht nach Datum sortieren.

mkinzler 22. Mär 2008 08:43

Re: Vergleichen von strings in der datenbank
 
Laut Referenz kennt SQLite CAST(). Man könnte Testen ob es so funktioniert

tmrxxoja 22. Mär 2008 20:25

Re: Vergleichen von strings in der datenbank
 
hmm ich habe mir überlegt das es ja seine richtigkeit haben muss

also habe ich das in der SQLite datenbank die felder in Timestamp geändert

nun bekomme ich die daten nicht in die tabelle

und zwar mache ich es so

SQL-Code:
    DB_INSERT('Insert Into PfadBilder ("PFAD","MD5","erstellt","geaendert") Values ("'+aListe[n]+'","'+MD5DigestToStr(MD5File(aListe[n]))+'","'+SQLTimeStampToStr(DateTimeToSQLTimeStamp(GetCreatTime(aListe[n])))+'","'+SQLTimeStampToStr(DateTimeToSQLTimeStamp(GetTime(aListe[n])))+'")');
nun DB_Inerst will einen String haben
und ich bekomme die Meldung das TimeStamp nit kompatibel mit String ist

hmm aber ich sollte durch dieses konstruckt doch einen string
oder ?

Delphi-Quellcode:
  SQLTimeStampToStr(DateTimeToSQLTimeStamp(GetCreatTime(aListe[n])))
oder sehe ich das falsch

hmm muss ich ja

mkinzler 22. Mär 2008 20:31

Re: Vergleichen von strings in der datenbank
 
Was liefert GetCreateTime()?

tmrxxoja 22. Mär 2008 20:55

Re: Vergleichen von strings in der datenbank
 
TDateTime

mkinzler 22. Mär 2008 21:02

Re: Vergleichen von strings in der datenbank
 
Versuch mal
Delphi-Quellcode:
DateTimeToStr(GetCreatTime(aListe[n]))
Oder (SQL-)Parameter

tmrxxoja 22. Mär 2008 21:13

Re: Vergleichen von strings in der datenbank
 
jap

das hatte ich vorher
aber ich muss das ja in SQL format haben

so bekomme ich ja 01.05.2002 wieder statt 2002-05-01

und das wollte ich umgehen

mkinzler 22. Mär 2008 21:17

Re: Vergleichen von strings in der datenbank
 
Der kannst der Konvertierungsfunktion das Format mitgeben.

OG Karotte 22. Mär 2008 21:27

Re: Vergleichen von strings in der datenbank
 
Versuch's doch mal so:

Delphi-Quellcode:
s := FormatDateTime('yyyy-mm-dd', GetCreatTime(aListe[n]));
und dein SQL String:

SQL-Code:
'Insert Into PfadBilder ("PFAD","MD5","erstellt","geaendert") Values ("'+aListe[n]+'","'+MD5DigestToStr(MD5File(aListe[n]))+'","'+  s + '","' + s +'")';
...oder mkinzler's Version mit dem Formatstring


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 Uhr.
Seite 2 von 3     12 3      

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