MySQL und Datum

alles zu mySql/mariadb

Moderator: Moderatoren

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

MySQL und Datum

Beitrag von Rudolf »

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) 5938 mal betrachtet
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: MySQL und Datum

Beitrag von brandelh »

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: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: MySQL und Datum

Beitrag von brandelh »

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: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: MySQL und Datum

Beitrag von Rudolf »

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: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: MySQL und Datum

Beitrag von brandelh »

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: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: MySQL und Datum

Beitrag von georg »

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 S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Antworten