我不知道如何设置指定的日期格式以使用CASE WHEN进行查询。我尝试做的是创建一个看起来像下面的选择。
$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
答案 0 :(得分: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";
注意:如果在Double引用的字符串文字中使用单引号,则可以省去所有那些仅用于混淆眼睛的转义字符。此外,$variables
会在双引号字符串中自动展开。