我不知道如何设置指定的日期格式以使用 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
最佳答案
像这样,
$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
会在双引号字符串内自动展开。
关于php - 如何将 CURRENT_DATE() 函数与具有指定格式字符串的学说 2 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39834849/