Datum und Uhrzeit von datetime (Fehler in MySQL?)

8

Mit der folgenden Anweisung scheint MySQL die Dinge zu durcheinander zu bringen:

%Vor%

Wenn das zweite Argument von if durch eine literale Zeichenfolge ersetzt wird, verhält sich die Anweisung korrekt:

%Vor%

Ist das ein Fehler oder eine seltsame Eigenart?

    
forthrin 24.07.2013, 08:15
quelle

1 Antwort

4

Der Rückgabetyp von IF muss ein Datentyp sein, der die Typen beider Argumente enthält. Wenn also eines der Argumente ein DATE und das andere ein TIME ist, ist der Typ von IF DATETIME .

Dies scheint in der trivialen Beispielabfrage nicht notwendig zu sein, aber betrachten Sie etwas wie:

%Vor%

Alle Zeilen des Ergebnisses müssen denselben Datentyp in der Spalte dt haben, auch wenn die spezifischen Daten davon abhängen, was sich in dieser Zeile befindet.

Wenn Sie nur das Datum oder die Uhrzeit möchten, konvertieren Sie es in eine Zeichenfolge.

    
Barmar 24.07.2013, 08:32
quelle

Tags und Links