![]() |
Datenbank: MySQL • Version: 4.1 • Zugriff über: ADO / ODBC
MySQL, welches Datumsformat verwenden?
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 |
Re: MySQL, welches Datumsformat verwenden?
Nimm parametrisierte Abfragen und gut ist!
|
Re: MySQL, welches Datumsformat verwenden?
bei 20090910 müßte es nichtmal ein Datumsfeld sein, da sich dieses auch als String vergleichen ließe.
|
Re: MySQL, welches Datumsformat verwenden?
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 ![]() Zitat:
|
Re: MySQL, welches Datumsformat verwenden?
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? |
Re: MySQL, welches Datumsformat verwenden?
Ich verstehe anscheinend wirklich nicht, was Du eigentlich willst (sorry, war ein langer Arbeitstag :wink: ).
Angenommen, in der Datenbank stehen die 2 Daten 15.6.2005 und 10.9.2009, dann musst Du in Deiner Abfrage schreiben
SQL-Code:
Dann bekommst Du den 10.9.2009 als Ergebnis.
SELECT * FROM bla WHERE `datum` BETWEEN '1.9.2009' AND '1.10.2009'
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. |
Re: MySQL, welches Datumsformat verwenden?
Zitat:
|
Re: MySQL, welches Datumsformat verwenden?
MySQL verwendet per Default das amerikanische ISO Format für Datums-Felder, und nicht etwa die lokalen Formate des Servers oder Clients:
SQL-Code:
Wenn man unbedingt will kann man dieses Format ändern über die Systemvariablen date_format, datetime_format und time_format:
SELECT * FROM bla WHERE `datum` BETWEEN '2009-09-01' AND '2009-10-01';
SELECT * FROM bla WHERE `datumzeit` BETWEEN '2009-09-01 09:12:16' AND '2009-10-01 01:12:23'; SELECT * FROM bla WHERE `zeit` BETWEEN '09:10:11' AND '10:11:12'; Anzeigen:
SQL-Code:
Ändern:
SHOW VARIABLES LIKE '%_format';
SQL-Code:
Zu empfehlen ist das Ändern nicht, weil man Kompatibilitätsprobleme mit anderen Anwendungen provoziert. Warum auch, das ISO Format ist hübsch und einheitlich.
SET @@global.datetime_format = '%d.%m.%Y %H:%i:%s';
Ich verwende kein parametrisiertes SQL bisher obwohl ich die Idee ganz gut finde, sofern man dadurch keine neuen Probleme bekommt. |
Re: MySQL, welches Datumsformat verwenden?
Zitat:
![]() |
Re: MySQL, welches Datumsformat verwenden?
Hast natürlich recht, was hab ich mir dabei bloß gedacht :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 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-2025 by Thomas Breitkreuz