AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Vergleichen von strings in der datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

Vergleichen von strings in der datenbank

Ein Thema von tmrxxoja · begonnen am 21. Mär 2008 · letzter Beitrag vom 22. Mär 2008
Antwort Antwort
Seite 2 von 3     12 3      
OG Karotte
(Gast)

n/a Beiträge
 
#11

Re: Vergleichen von strings in der datenbank

  Alt 21. Mär 2008, 22:43
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.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Vergleichen von strings in der datenbank

  Alt 21. Mär 2008, 22:45
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 08:43
Laut Referenz kennt SQLite CAST(). Man könnte Testen ob es so funktioniert
Markus Kinzler
  Mit Zitat antworten Zitat
tmrxxoja

Registriert seit: 16. Mär 2008
Ort: Helgoland
27 Beiträge
 
Delphi 7 Professional
 
#14

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 20:25
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

    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 ?

  SQLTimeStampToStr(DateTimeToSQLTimeStamp(GetCreatTime(aListe[n]))) oder sehe ich das falsch

hmm muss ich ja
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 20:31
Was liefert GetCreateTime()?
Markus Kinzler
  Mit Zitat antworten Zitat
tmrxxoja

Registriert seit: 16. Mär 2008
Ort: Helgoland
27 Beiträge
 
Delphi 7 Professional
 
#16

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 20:55
TDateTime
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 21:02
Versuch mal
DateTimeToStr(GetCreatTime(aListe[n])) Oder (SQL-)Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
tmrxxoja

Registriert seit: 16. Mär 2008
Ort: Helgoland
27 Beiträge
 
Delphi 7 Professional
 
#18

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 21:13
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 21:17
Der kannst der Konvertierungsfunktion das Format mitgeben.
Markus Kinzler
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#20

Re: Vergleichen von strings in der datenbank

  Alt 22. Mär 2008, 21:27
Versuch's doch mal so:

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

'Insert Into PfadBilder ("PFAD","MD5","erstellt","geaendert") Values ("'+aListe[n]+'","'+MD5DigestToStr(MD5File(aListe[n]))+'","'+ s + '","' + s +'")'; ...oder mkinzler's Version mit dem Formatstring
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 Uhr.
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