如何从sql中两列之间有固定差异的表中选择数据

ki0zmccv  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(408)

我想查询一个mysql表,该表必须包含“generationutc”和“utc”列,并且我只想查询“generationutc”和“utc”之间相差一天的数据。例如,我只需要generationutc=2020-07-21和utc=2020-07-22(一天后)的数据。但我希望所有日期都有这个。
因此,这既是一个与sql中的日期相关的问题,也是一个在不同列上提取具有特定条件的数据的问题。
我试过类似的方法

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

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

cwdobuhd

cwdobuhd1#

问题是-那么

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

这需要将两列都定义为日期数据类型。如果是日期时间或时间戳

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

相关问题