2016-12-25 4 views
1

ich nur Zeit wollen mit einem anderen Zeit-String zu vergleichen, so bin ich mit STR_TO_DATE Funktion zu meiner Zeit Zeichenfolge Datum ZeitformatMySQL STR_TO_DATE Funktion nicht für die Zeit arbeiten

Unter Anweisung funktioniert gut für mich umwandeln, so dass ich denke, MySQL haben kein Problem

SELECT STR_TO_DATE('26/04/2011', '%d/%m/%Y'); 

Aber ich weiß nicht, warum unter einem nicht für mich arbeiten

SELECT STR_TO_DATE('11:59:59','%h:%i:%s'); 

obige Aussage immer NULL zurück, wenn i laufen in SQL-Konsole von PhpMyAdmin

+0

funktioniert für mich ... – GurV

+1

Doc sagt alles: https://dev.mysql.com/doc/refman/5.5/en/sql-mode.html#sqlmode_no_zero_date –

+0

Versuchen Sie Folgendes: 'SET sql_mode = ' '; ' –

Antwort

0

Diese in der Tat NO_ZERO_DATE wegen der SQL-Modus befindet. Du hättest das sehen sollen, als Anand Rockzz mit dem Handbuch verlinkt ist, aber dieser Link ist nur die halbe Erklärung. Ab MySQL 5.7.4 ist die Einstellung veraltet. In Ihrem ersten Beispiel legen Sie ein Datum fest; Im zweiten Fall verursacht NO_ZERO_DATE die Rückgabe von NULL, weil Sie kein Datum angeben. Beginnend mit 5.7.8 wurden NO_ZERO_DATE und NO_ZERO_IN_DATE mit dem Standardwert sql_mode eingeschlossen. Nach the manual, scheint es, als ob die deprecation und Entfernung teilweise rückgängig gemacht wurden (mit 5.7.8 beginnen), so können Sie in der Lage sein, dies explizit in Ihrem my.cnf (oder pro Sitzung).

Sie sollten auch auf das Handbuch über die NO_ZERO_DATE Richtlinie beziehen.

Verwandte Themen