gpt4 book ai didi

mysql - 当结果仅包含属性有效的开始日期时,如何在两个日期之间进行 MySQL 查询?

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:14 26 4
gpt4 key购买 nike

我有一个具有以下结构的简单示例表:

PK_ID | PK_VALID_FROM_DATE | VALUE
------+--------------------+------
1 | "1980-01-01" | 42
1 | "1999-06-06" | 103
2 | "2011-12-12" | 92
1 | "2014-04-04" | 512

该表是通过添加一行创建的,在每个日期值都会发生变化。

或者是否有更好的方法来创建值更改日期的历史记录并进行查找?

现在我想查询找出哪个 VALUE 在特定日期对特定 PK_ID 有效。

使用示例:

2010-05-22PK_ID=1VALUE 是多少?

很容易看出,从 1999-06-062014-04-03 PK_ID 的 VALUE=103 =1,但是如何查询 2010-05-22 呢?

最佳答案

如果我没理解错的话。首先找到所需日期之前的最大日期。然后取那个日期的值

drop table if exists t1; 
create table t1 (PK_ID int, PK_VALID_FROM_DATE date, VALUE int);
insert into t1 values
(1,"1980-01-01", 42),
(1, "1999-06-06", 103),
(2, "2011-12-12", 92),
(1, "2014-04-04", 512);

select value
from t1
where PK_ID=1
and PK_VALID_FROM_DATE =
(select max(PK_VALID_FROM_DATE)
from t1
where PK_ID=1
and PK_VALID_FROM_DATE<= DATE("1999-06-06"))

关于mysql - 当结果仅包含属性有效的开始日期时,如何在两个日期之间进行 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31725371/

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