我正在尝试计算创建的数据时间间隔之间的数据。
我尝试了以下代码
$check->where( function( $exp, $q ) {
return $exp->between(
$q->newExpr( 'NOW()' ),
$q->newExpr( 'created' ),
$q->newExpr( 'DATE_ADD( created, INTERVAL 30 MINUTE )' )
);
} );
我也试过
$check->where( [
'TIMESTAMPDIFF( MINUTE, created, NOW() ) >=' => 1,
'TIMESTAMPDIFF( MINUTE, created, NOW() ) <=' => 30,
] );
两次我都得到了结果0
但是如果我尝试使用调试.log查询,我会得到结果1
SELECT (COUNT(*)) AS count FROM money_transfer_transactions MoneyTransferTransactions WHERE (user_id = 2 AND receiver_account_number = '01737810405' AND NOW() BETWEEN created AND DATE_ADD( created, INTERVAL 30 MINUTE ))
这里正确的 ans 是 1。
我将如何在两个日期时间间隔之间获得 30 分钟?
您可以使用 Chronos 类来处理 CakePHP 中的日期。您可以创建实例,然后对它们进行差异处理。