gpt4 book ai didi

mysql - 如何选择第二个表上某个日期之前一年内的所有 ID?

转载 作者:行者123 更新时间:2023-11-30 00:51:29 25 4
gpt4 key购买 nike

我有两个包含数千个条目的表。我只对第二个表中日期之前一年内的 ID 感兴趣。我正在使用的一个小例子如下......
第一个看起来像这样:

table A
id test date
1 b 12/28/2009
4 c 12/03/2006

第二个表如下所示:

table B
id date
1 2/03/2010
4 3/12/2008

我想从第一个表中检索第二个表中日期之前一年内的所有 ID。例如,在本例中,将选择 id 1,但不会选择 id 4。到目前为止,这是我尝试过的代码。

Select * FROM A,B 
WHERE (A.id = B.id AND A.date BETWEEN B.date-INTERVAL 1 YEAR AND B.date);

当我运行此查询时,我得到一个空集。有人可以解释一下我做错了什么以及我应该做什么才能让它正常工作吗?

最佳答案

如果您必须保持表结构不变,这将起作用:

SELECT * 
FROM a
JOIN b ON a.id = b.id
WHERE STR_TO_DATE(a.date, '%m/%d/%Y')
BETWEEN STR_TO_DATE(b.date, '%m/%d/%Y') - INTERVAL 1 YEAR
AND STR_TO_DATE(b.date, '%m/%d/%Y');

否则,请阅读此线程以将日期从 varchar 转换为 date: Convert varchar column to date in mysql at database level

关于mysql - 如何选择第二个表上某个日期之前一年内的所有 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com