2016-07-01 5 views
0

Kann ich einen Alias ​​create mit dem "CASE ... WHEN" (delayDate) in einer anderen Funktion wie date_add() verwenden:(MYSQL] Verwenden Sie einen Alias ​​"CASE ... WHEN" in einer date_add-Funktion

Lehre Art und Weise:

->addSelect("CASE c.time 
         WHEN '24' then 1 
         WHEN '48' then 2 
         WHEN '72' then 3 
         WHEN '96' then 4 
         ELSE 0 
         END 
         as delayDate , 
        date_add(CURRENT_DATE(), delayDate, 'DAY') as firstDateDelivery") 

Dies, weil ich nicht Gebrauch 'Stunde' in der Lehre mit der date_add() Funktion

ich glaube, in "reinem" mysql, es nicht mehr funktioniert. ...

Können Sie mir bitte helfen? F.

Antwort

0

Entfernen Sie ein Angebot von DAY, und überprüfen Sie diese DATE_ADD() Verwendung func_date_add.

->addSelect("CASE c.time 
         WHEN '24' then 1 
         WHEN '48' then 2 
         WHEN '72' then 3 
         WHEN '96' then 4 
         ELSE 0 
         END 
         as delayDate , 
       CASE c.time 
         WHEN '24' then date_add(CURRENT_DATE(), INTERVAL 1 DAY) 
         WHEN '48' then date_add(CURRENT_DATE(), INTERVAL 2 DAY) 
         WHEN '72' then date_add(CURRENT_DATE(), INTERVAL 3 DAY) 
         WHEN '96' then date_add(CURRENT_DATE(), INTERVAL 4 DAY) 
         ELSE CURRENT_DATE() 
         END 
         as firstDateDelivery") 
+0

Thanks :), aber ich habe diesen Fehler: QueryException: [Syntax Error] Zeile 0, Spalte 382: Fehler: Erwartete Lehre \ ORM \ query \ Lexer :: T_COMMA erwartet, '1' – fabrice

+0

Und mit dies: WANN '24' dann date_add (CURRENT_DATE(), INTERVALL, 1, DAY). Es funktioniert auch nicht. Der Fehler: [Syntaxfehler] Zeile 0, Spalte 383: Fehler: Erwartete StateFieldPathExpression | Zeichenfolge | EingabeParameter | FunktionenReturningStrings | AggregateExpression, hat '1' – fabrice

Verwandte Themen