Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

MySQL und Datum

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1304
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

MySQL und Datum

Beitrag von Rudolf » Fr, 19. Aug 2016 10:22

Hallo,
habe ein Problem mit SQL Statements und Datum. Mit
DELETE FROM forms_in WHERE forms_in.date_read > {ts '16-08-2016 00:00:00'} and forms_in.date_read < {ts '20-08-2016 23:59:59'} AND forms_in.status='ok';
z.B. werde die Datensätze nicht berücksichtigt, gibt es eine ander Methode für ein Datumsfeld oder mache ich etwas falsch ?
Grüße
Rudolf
Dateianhänge
2016-08-19_10h19_32.png
2016-08-19_10h19_32.png (23.01 KiB) 910 mal betrachtet

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: MySQL und Datum

Beitrag von brandelh » Fr, 19. Aug 2016 10:30

ich kenne das Datum nur im ISO Format JJJJ-MM-TT die Anzeige ist da eventuell lokalisiert ?
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: MySQL und Datum

Beitrag von brandelh » Fr, 19. Aug 2016 10:40

Hier aus der Hilfe, müsste auch für DELETE gelten:
Because MySQL performs the conversions just described, the following statements work (assume that idate is a DATE column):

SELECT idate FROM t1 WHERE idate >= '1997-05-05';
SELECT idate FROM t1 WHERE idate >= 19970505;
SELECT MOD(idate,100) FROM t1 WHERE idate >= 19970505;
SELECT idate FROM t1 WHERE idate >= '19970505';
oder das zu timestamp:
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.

The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.
Gruß
Hubert

Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1304
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: MySQL und Datum

Beitrag von Rudolf » Fr, 19. Aug 2016 10:42

Hallo Hubert,
habs auch mit
DELETE FROM forms_in WHERE forms_in.date_read > {ts '2016-08-15 00:00:00'} and forms_in.date_read < {ts '2016-08-20 23:59:59'} AND forms_in.status='ok';
versucht, geht auch nicht.
Grüße
Rudolf

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: MySQL und Datum

Beitrag von brandelh » Fr, 19. Aug 2016 10:53

Rudolf hat geschrieben:Hallo Hubert,
habs auch mit
DELETE FROM forms_in WHERE forms_in.date_read > {ts '2016-08-15 00:00:00'} and forms_in.date_read < {ts '2016-08-20 23:59:59'} AND forms_in.status='ok';
versucht, geht auch nicht.
Grüße
Rudolf
und mit

Code: Alles auswählen

DELETE FROM forms_in WHERE forms_in.date_read > '2016-08-15' and forms_in.date_read <= '2016-08-20' AND forms_in.status='ok';
eventuell ist auch der status nicht wie du ihn erwartest ...

ach und ist > '2016-08-15' oder >= '2016-08-15' ?
Gruß
Hubert

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1934
Registriert: Fr, 08. Feb 2008 21:29

Re: MySQL und Datum

Beitrag von georg » Fr, 19. Aug 2016 11:08

Hallo, Rudolf -


mich irritiert das

Code: Alles auswählen

 {ts 
in Deiner Anweisung. Wofür soll das gut sein? Es genügt, wenn Du das Datum in einfache Anführungsstriche setzt. Du sparst damit wenigstens einen Konversionsschritt.

http://dev.mysql.com/doc/refman/5.7/en/ ... erals.html

Dort wird (bei Verwendung des {ts) klar davon ausgegangen, dass das Datumsformat YMD (in verschiedenen Variationen) ist.
Liebe Grüsse aus der Eifel,

Georg

Antworten