2016-10-03 5 views
0

CASE WHENを使用してクエリに指定した日付形式を設定する方法がわかりません。私がやろうとしているのは、1つのように見える選択を作成することです。CURRENT_DATE()関数を指定された書式文字列でdoctrine 2で使用する方法は?

$qb -> select(' 
       CASE WHEN ps.paymentDate >= (new \DateTime(\'%Y-%m-01\')) THEN \'true\' ELSE \'false\' END as myVar 
'); 

インターネットで解決策を探しましたが見つかりませんでした。私は問題全体を考えていますか?

MySQLで

前のコードは次のように見えた:このように

IF(ps.payment_date >= DATE_FORMAT(CURDATE(),\'%Y-%m-1\'),\'true\',\'false\') as myVar 

答えて

1

$d = new \DateTime(); 
$sd = $d->format('Y-m-01'); 
$qb -> select("CASE WHEN ps.paymentDate >= '$sd' THEN 'true' ELSE 'false' END as myVar"); 

それとも

$q = "IF(ps.payment_date >= DATE_FORMAT(CURDATE(),'%Y-%m-01'),'true','false') as myVar"; 

注:リテラル二重引用符で囲まれた文字列内の単一引用符を使用する場合あなただけのサーバーが眼を混乱させるようなエスケープ文字をすべて省くことができます。また、$variablesは、二重引用符で囲まれた文字列の中で自動的に展開されます。

+0

これは私が欲しかったのと同じように機能します!ありがとう。 –

関連する問題