如何在typo3存储库方法中实现日期转换

时间:2016-08-30 12:47:25

标签: mysql typo3 extbase

我有一个查询

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();

2 个答案:

答案 0 :(得分:3)

您可以使用PHP计算该日期:

$timestamp = time() - 86400 * 365;
$query->matching(
    $query->lessThanOrEqual('tstamp', $timestamp )
);

答案 1 :(得分:1)

这在extbase中不可能直接实现。但是我看到了两个可能的选项

变体1

使用本机SQL查询返回记录的uid并使用extbase查询中的那些:

 $query->in('uid', $idList)

变体2

可以操纵查询,但这是一个非常大的开销。您可以查看https://github.com/TYPO3-extensions/news/blob/master/Classes/Domain/Repository/AbstractDemandedRepository.php#L90以获得一个主意。