我如何在 typo3 存储库方法中实现日期转换
how can i implement date conversions in typo3 repository methods
我有一个问题
SELECT * FROM `my_table`
WHERE DATEDIFF(CURDATE(), CAST(from_unixtime(tstamp) AS DATE)) >=365
如何转换为存储库方法
$query = $this->createQuery();
$query->statement();
$query->matching(
$query->greaterThanOrEqual(????, 365)
);
return $query->execute();
这在 extbase 中是无法直接实现的。但是我看到了 2 个可能的选项
变体 1
使用本机 SQL 查询 return 记录的 uid,并在 extbase 查询中使用它们:
$query->in('uid', $idList)
变体 2
可以操纵查询,但是这是一个很大的开销。你可以看看 https://github.com/TYPO3-extensions/news/blob/master/Classes/Domain/Repository/AbstractDemandedRepository.php#L90 来了解一下。
你可以用 PHP:
计算那个日期
$timestamp = time() - 86400 * 365;
$query->matching(
$query->lessThanOrEqual('tstamp', $timestamp )
);
我有一个问题
SELECT * FROM `my_table`
WHERE DATEDIFF(CURDATE(), CAST(from_unixtime(tstamp) AS DATE)) >=365
如何转换为存储库方法
$query = $this->createQuery();
$query->statement();
$query->matching(
$query->greaterThanOrEqual(????, 365)
);
return $query->execute();
这在 extbase 中是无法直接实现的。但是我看到了 2 个可能的选项
变体 1
使用本机 SQL 查询 return 记录的 uid,并在 extbase 查询中使用它们:
$query->in('uid', $idList)
变体 2
可以操纵查询,但是这是一个很大的开销。你可以看看 https://github.com/TYPO3-extensions/news/blob/master/Classes/Domain/Repository/AbstractDemandedRepository.php#L90 来了解一下。
你可以用 PHP:
计算那个日期$timestamp = time() - 86400 * 365;
$query->matching(
$query->lessThanOrEqual('tstamp', $timestamp )
);