MySQL und Datum

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

MySQL und Datum

Beitragvon Rudolf » Fr, 19. Aug 2016 9: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) 662-mal betrachtet
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1187
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: MySQL und Datum

Beitragvon brandelh » Fr, 19. Aug 2016 9: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: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: MySQL und Datum

Beitragvon brandelh » Fr, 19. Aug 2016 9: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: MySQL und Datum

Beitragvon Rudolf » Fr, 19. Aug 2016 9: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
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1187
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: MySQL und Datum

Beitragvon brandelh » Fr, 19. Aug 2016 9: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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: MySQL und Datum

Beitragvon georg » Fr, 19. Aug 2016 10: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/date-and-time-literals.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
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1777
Registriert: Fr, 08. Feb 2008 21:29


Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste