Solange Sie speichern Datum/Uhrzeit als Strings, Sie wird große Schwierigkeiten haben, irgendwelche Datum/Zeit spezifische Funktionen und Funktionen zu verwenden. Wenn Sie NULL von MONTH(str_to_date(
Created_Date , '%d/%m/%Y'))
erhalten, konvertiert die str_to_date
die Zeichenfolgen nicht zu Daten und der wahrscheinlichste Grund dafür ist die d m y
"Muster" ist nicht korrekt.
Alles, was Sie alt haben uns über Ihre „Strings, die Daten sein könnte“, ist, dass einer von ihnen wie folgt aussieht: 01/01/2017
. Nun, das könnte DD/MM/YYYY
oder MM/DD/YYYY
sein und wir können einfach nicht sagen, welches ist korrekt von dem einzelnen Wert, den Sie gewählt haben, um mit uns zu teilen. Suchen Sie nach einem beliebigen Tag Wert größer als 12 in Ihren Daten, z. 17/01/2017 ==> DD/MM/YYYY
oder01/17/2017 ==> MM/DD/YYYY
Sobald Sie die Wahl Ihrer welches Muster gemacht haben „Strings, die sein könnte dates“ folgen; Wenden Sie dieses Muster in der Funktion str_to_date() an. Sie migh ein paar verschiedene Muster ausprobieren wollen das beste zu bekommen (und das sind nur drei von vielen könnten Sie versuchen):
# which pattern is best for you?
SELECT Created_Date
, str_to_date(`Created_Date`, '%d/%m/%Y') "d/m/y"
, str_to_date(`Created_Date`, '%m/%d/%Y') "m/d/y"
, str_to_date(`Created_Date`, '%Y-%m-%d') "y-m-d"
FROM `CRM_Leads`
Sie werden nicht durch Abfrage mit Ihrer Gruppe Erfolg haben, bis Sie die am besten geeignete auswählen d m y
Muster, das in der str_to_date-Funktion angewendet werden soll. Beachten Sie, dass Sie möglicherweise auch eine Vielzahl von Mustern in Ihren Daten haben. In diesem Fall müssen Sie ein noch größeres Problem lösen.
Sobald Sie die Wahl getroffen haben, welches Muster Ihre "Strings, die Daten sein könnten" folgen; Wenden Sie dieses Muster in der s tr_to_date()
Funktion an und NUR DANN funktioniert Ihre Gruppe per Abfrage.
Sind deine Daten wirklich Daten, oder sind sie Zeichenfolgen? – Uueerdo
Theyre Saiten. @Uueerdo – Kray
Sie müssen sie in Datumswerte konvertieren, bevor Sie sie mit der MONTH-Funktion verwenden; MySQL stellt [STR_TO_DATE()] (https: //dev.mysql.com/doc/refman/5.7/de/date-and-time-funktionen.html # function_str-to-date) dafür; Ich würde die langfristige Lösung empfehlen, wenn möglich, die Spalte in ein korrektes Datum zu konvertieren. – Uueerdo