【发布时间】:2021-06-27 15:20:28
【问题描述】:
我有 2 个包含此类数据的表:
表 1
| id | s_id | s_date |
|---|---|---|
| 1 | 33 | 2021-03-05 10:36:59 |
| 2 | 33 | 2021-03-06 10:36:59 |
| 3 | 33 | 2021-03-09 10:36:59 |
| 4 | 33 | 2021-03-10 13:36:59 |
| 5 | 33 | 2021-03-11 12:36:59 |
| 6 | 33 | 2021-03-12 09:00:59 |
| 7 | 33 | 2021-03-13 13:36:59 |
| 8 | 33 | 2021-03-14 18:00:00 |
| 9 | 33 | 2021-03-15 18:00:00 |
| 10 | 33 | 2021-03-16 13:00:00 |
| 11 | 33 | 2021-03-17 18:00:00 |
| 12 | 33 | 2021-03-18 14:00:00 |
| 13 | 33 | 2021-04-01 18:00:00 |
| 14 | 33 | 2021-05-02 14:00:00 |
表 2
| id | s_id | amount | date_from | date_to |
|---|---|---|---|---|
| 1 | 33 | 100 | 2012-03-12 00:00:00 | 2022-01-01 00:00:00 |
| 2 | 33 | 200 | 2018-03-12 00:00:09 | 2021-02-28 00:00:00 |
| 3 | 33 | 300 | 2021-03-01 00:00:00 | 2021-03-31 00:00:00 |
| 4 | 33 | 400 | 2021-03-07 00:00:00 | 2021-03-12 00:00:00 |
如何选择具有适当 id 的行,其中 date_from 和 date_to 之间的 s_date 最接近 date_from\date_to 范围? 在我的情况下,最合适的行必须是:
| id | s_id | s_date | amount |
|---|---|---|---|
| 1 | 33 | 2021-03-05 10:36:59 | 300 |
| 2 | 33 | 2021-03-06 10:36:59 | 300 |
| 3 | 33 | 2021-03-09 10:36:59 | 400 |
| 4 | 33 | 2021-03-10 13:36:59 | 400 |
| 5 | 33 | 2021-03-11 12:36:59 | 400 |
| 6 | 33 | 2021-03-12 09:00:59 | 400 |
| 7 | 33 | 2021-03-13 13:36:59 | 300 |
| 8 | 33 | 2021-03-14 18:00:00 | 300 |
| 9 | 33 | 2021-03-15 18:00:00 | 300 |
| 10 | 33 | 2021-03-16 13:00:00 | 300 |
| 11 | 33 | 2021-03-17 18:00:00 | 300 |
| 12 | 33 | 2021-03-18 14:00:00 | 300 |
| 13 | 33 | 2021-04-01 18:00:00 | 100 |
| 14 | 33 | 2021-05-02 14:00:00 | 100 |
谢谢!
【问题讨论】:
标签: mysql sql date datetime date-range