2016-07-01 9 views
0

date_add()のような別の関数で、 "CASE ... WHEN"(delayDate)でエイリアス作成を使用できますか:(MYSQL)date_add関数の "CASE ... WHEN"エイリアスを使用する

教義の道:

->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") 

この私が、それはもうDATE_ADD()関数と教義ではない使用 'HOUR' 私は "純粋な" mysqlのでは、と思います

働いていない可能性があるため。 ...

私を助けてくれますか? F.

答えて

0

DAYから一重引用符を削除し、DATE_ADD()用法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

おかげ:)が、私はこのエラーしました:QueryException:[構文エラー]行0、列382:エラー:教義\ ORM \クエリー\レクサー期待:: T_COMMAは、 '1' – fabrice

+0

と使用を得ましたthis:WHEN '24'、次にdate_add(CURRENT_DATE()、INTERVAL、1、DAY)。それはあまり効果がありません。エラー:[構文エラー]行0、列383:エラー:Expected StateFieldPathExpression |文字列| InputParameter | FunctionsReturningStrings | AggregateExpression、 '1'を取得 – fabrice