如何使用带有指定格式字符串的doctrine 2的CURRENT_DATE()函数?

时间:2016-10-03 15:12:14

标签: php mysql doctrine-orm

我不知道如何设置指定的日期格式以使用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   

1 个答案:

答案 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会在双引号字符串中自动展开。