我如何在 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 )
);