如何 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
我想查询一个 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