2017-01-10 4 views
2

Ich habe eine fünf Zeichen breite Spalte von Daten, die aus einem Datum ohne Jahr wie 04-17 oder 11-22 bestehen. Ich versuche, eine MySQL-Abfrage zu erstellen, die mir Tag des Jahres für Werte in dieser Spalte geben wird, aber Probleme haben, da die Werte kein Jahr haben. Die nächste, die ich komme, istInformationen erhalten. über ein Datum ohne Jahr in MySQL

aber die Concaccationation scheint nicht zu funktionieren. Irgendwelche Ideen, wie ich den Tag des Jahres für Datumswerte wie diese erreichen kann?

Antwort

1

Wenn Sie Verkettung wollen, müssen Sie danach fragen explizit with CONCAT().

SELECT DAYOFYEAR(DATE(CONCAT(YEAR(NOW()),'-',t.sdate))) 

wird tun, was Sie wollen, mit Bezug auf das laufende Jahr. Das macht einen Unterschied, weil einige Jahre Schaltjahre sind.

1

Sie können nicht ein genaues DayOfYear von nur einer Tag/Monat-Paarung erhalten. Sie brauchen das Jahr, um zu bestimmen, ob es ein Schaltjahr ist oder nicht. Sie können es täuschen, aber es wird alle vier Jahre falsch sein.