日付を比較して、SELECT
したいです。
$dnw05
= '2017/01/31'
$dnw05_2
= '2017/02/18'
※$dnw05
or$dnw05_2
は一方が''(空)の場合もあります。
PHP
1if(is_string($dnw05) && $dnw05 !== ''){ 2 $query->where(function ($exp, $q) use($dnw05,$dnw05_2){ 3 return $exp->addCase( 4 [ 5 $q->newExpr()->lte('dnw05', $dnw05_2), 6 $q->newExpr()->between('dnw05', $dnw05, $dnw05_2), 7 $q->newExpr()->gte('dnw05', $dnw05), 8 ], 9 ['SMALL', 'MEDIUM', 'LARGE'], # 条件に合致したときの値 10 ['string', 'string', 'string'] # それぞれの値の型 11 ); 12 }); 13 }
SQL
1WHERE 2 ( 3 CASE 4 WHEN dnw05 <= '2017/02/18' THEN 'SMALL' 5 WHEN dnw05 BETWEEN '2017/01/31' AND '2017/02/18' THEN 'MEDIUM' 6 WHEN dnw05 >= '2017/01/31' THEN 'LARGE' 7 ELSE 'その他' 8 END 9 )
dnw05 |
---|
2016/02/01 |
######現状
エラーはないのですが、1件も取得することができません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/02 03:40
退会済みユーザー
2017/03/02 03:47
2017/03/02 03:58
退会済みユーザー
2017/03/02 05:37
2017/03/02 05:46