AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL, welches Datumsformat verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL, welches Datumsformat verwenden?

Ein Thema von PASST · begonnen am 10. Sep 2009 · letzter Beitrag vom 11. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

MySQL, welches Datumsformat verwenden?

  Alt 10. Sep 2009, 15:54
Datenbank: MySQL • Version: 4.1 • Zugriff über: ADO / ODBC
Hallo allerseits,

leidliches Thema, ich möchte in einer MySQL Datenbank eine Abfrage mit einem Datumsvergleich (am besten mit BETWEEN) durchführen.

Die Frage, die sich aber bei jeder Datenbank stellt, wie finde ich heraus, wie muss ich das Datum im SQL-String schreiben.

Bsp.:
Heute ist der 10.9.2009, 20090910, 09-10-2009 oder 20090910 oder oder oder?

Welche Anführungszeichen benötige ich " oder ' ?

Welche Schreibweise ist die richtige und wie finde ich das generell bei Datenbanken heraus?

Gruß,
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: MySQL, welches Datumsformat verwenden?

  Alt 10. Sep 2009, 15:58
Nimm parametrisierte Abfragen und gut ist!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#3

Re: MySQL, welches Datumsformat verwenden?

  Alt 10. Sep 2009, 16:00
bei 20090910 müßte es nichtmal ein Datumsfeld sein, da sich dieses auch als String vergleichen ließe.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ernschd

Registriert seit: 16. Jan 2008
165 Beiträge
 
Delphi XE8 Professional
 
#4

Re: MySQL, welches Datumsformat verwenden?

  Alt 10. Sep 2009, 16:02
Also ich würde sagen, Du musst das Datum so in die Abfrage schreiben, wie es in Deiner Datenbank eingetragen ist. Oder habe ich Dich falsch verstanden?

Zu den Anführungszeichen steht im Handbuch:
Zitat:
Wenn der SQL-Modus ANSI_QUOTES aktiviert ist, dürfen String-Literale nur in einfache Anführungszeichen gesetzt werden. Ein in doppelten Anführungszeichen stehender String wird als Bezeichner interpretiert.
Wenn Du also ANSI_QUOTES nicht aktiviert hast, ist es egal.
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: MySQL, welches Datumsformat verwenden?

  Alt 10. Sep 2009, 16:13
Ja, ich weiß, parametrisierte Abfragen sind die eigentlich richtige Wahl.

Und ja, die Datumsschreibweise, welche in der Datenbank verwendet wird, ist auch genau diejenige, die funktioniert.

Wo kann ich am MySQL Server die Einstellung ANSI_QUOTES setzen?
  Mit Zitat antworten Zitat
ernschd

Registriert seit: 16. Jan 2008
165 Beiträge
 
Delphi XE8 Professional
 
#6

Re: MySQL, welches Datumsformat verwenden?

  Alt 10. Sep 2009, 16:29
Ich verstehe anscheinend wirklich nicht, was Du eigentlich willst (sorry, war ein langer Arbeitstag ).

Angenommen, in der Datenbank stehen die 2 Daten 15.6.2005 und 10.9.2009, dann musst Du in Deiner Abfrage schreiben SELECT * FROM bla WHERE `datum` BETWEEN '1.9.2009AND '1.10.2009' Dann bekommst Du den 10.9.2009 als Ergebnis.
Du musst allerdings auch wirklich in dem gleichen Format schreiben, z.B. würde der 01.09.2009 nichts finden.

Wenn Du ANSI_QUOTES nicht aktiviert hast (davon gehe ich jetzt mal aus), dann kannst Du auch die doppelten Anführungszeichen verwenden.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: MySQL, welches Datumsformat verwenden?

  Alt 10. Sep 2009, 17:25
Zitat von Bernhard Geyer:
Nimm parametrisierte Abfragen und gut ist!
Das, und nix anderes. Jedes weitere Gefummel ist a) zu viel gemachte Arbeit und b) schon wieder im Eimer sobald das DBMS wechselt, ggf. sogar schon nur bein einem Versionssprung, oder Sprachänderung. Es macht einfach 0 Sinn da noch was zaubern zu wollen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: MySQL, welches Datumsformat verwenden?

  Alt 11. Sep 2009, 06:42
MySQL verwendet per Default das amerikanische ISO Format für Datums-Felder, und nicht etwa die lokalen Formate des Servers oder Clients:
SQL-Code:
SELECT * FROM bla WHERE `datum` BETWEEN '2009-09-01AND '2009-10-01';
SELECT * FROM bla WHERE `datumzeit` BETWEEN '2009-09-01 09:12:16AND '2009-10-01 01:12:23';
SELECT * FROM bla WHERE `zeit` BETWEEN '09:10:11AND '10:11:12';
Wenn man unbedingt will kann man dieses Format ändern über die Systemvariablen date_format, datetime_format und time_format:
Anzeigen:
SHOW VARIABLES LIKE '%_format'; Ändern:
SET @@global.datetime_format = '%d.%m.%Y %H:%i:%s'; Zu empfehlen ist das Ändern nicht, weil man Kompatibilitätsprobleme mit anderen Anwendungen provoziert. Warum auch, das ISO Format ist hübsch und einheitlich.

Ich verwende kein parametrisiertes SQL bisher obwohl ich die Idee ganz gut finde, sofern man dadurch keine neuen Probleme bekommt.
Ansgar Becker
https://www.heidisql.com
Wenn du loslässt, hast du zwei Hände frei.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: MySQL, welches Datumsformat verwenden?

  Alt 11. Sep 2009, 07:33
Zitat von anse:
MySQL verwendet per Default das amerikanische ISO Format für Datums-Felder, und nicht etwa die lokalen Formate des Servers oder Clients:
Es gib ein amerikanische ISO Format Wäre mir neu. Ich dachte es gibt hier nur ein länderneutrales ISO-Format das entsprechend in die EN und DIN-Norm 1:1 übernommen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: MySQL, welches Datumsformat verwenden?

  Alt 11. Sep 2009, 18:38
Hast natürlich recht, was hab ich mir dabei bloß gedacht
Ansgar Becker
https://www.heidisql.com
Wenn du loslässt, hast du zwei Hände frei.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:31 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