如何 select 来自 table 的数据,且 SQL 中两列之间的差异固定

How to select data from a table with fixed difference between two columns in SQL

我想查询一个 MySQL table,其中包含“generationUtc”和“Utc”列,我只想查询“generationUtc”和“Utc”之间存在差异的数据“是一天。例如,我只想要 generationUtc = 2020-07-21 和 Utc = 2020-07-22(一天后)的数据。但我希望所有可用日期都如此。

所以这既是一个与 SQL 中的日期相关的问题,也是一个关于在不同列上以特定条件提取数据的问题。

我试过

SELECT * FROM database
WHERE EXTRACT(DAY FROM (generatedUtc - Utc)) = '1'

但这似乎不起作用。我发现很多关于如何将两列之间的差异提取为新列的帖子,但没有关于如何直接在两列的 difference 上提取条件的数据。

问题是MySQL-tagged - 所以

SELECT * 
FROM database
WHERE DATEDIFF(Utc, generatedUtc) = 1

这需要将两列都定义为 DATE 数据类型。如果它们是 DATETIME 或 TIMESTAMP 那么

SELECT * 
FROM database
WHERE DATEDIFF(DATE(Utc), DATE(generatedUtc)) = 1