gpt4 book ai didi

mysql - 如何按年、月、日列选择 2 个日期之间的所有值?

转载 作者:行者123 更新时间:2023-11-29 04:33:10 25 4
gpt4 key购买 nike

MySQL 数据库中,我有包含 YEARMONTHDAY 列的表。

| YEAR | MONTH | DAY | VALUE |
|----------------------------|
| 2018 | 11 | 9 | 1056 |
| 2018 | 11 | 10 | 6582 |
|****************************|
| 2018 | 12 | 9 | 6892 |
| 2018 | 12 | 10 | 5987 |
|****************************|
| 2019 | 3 | 5 | 5693 |
| 2019 | 3 | 6 | 5698 |

我需要从 2 个日期之间的表中获取所有值。

假设在 2018-11-092019-03-05 之间或 2018-11-102018 之间-12-09.

很遗憾,我无法将这三列合并为一个 datetime 列。该表还按这 3 列进行了分区。

列的数据类型:smallint(6)

最佳答案

看起来这个查询应该给你你想要的结果。它从您的 3 列中创建一个日期字符串,然后使用 STR_TO_DATE将其转换为 MySQL 可以与搜索日期字符串进行比较的值。

SELECT *
FROM table1
WHERE STR_TO_DATE(CONCAT_WS('/', `DAY`, `MONTH`, `YEAR`), '%d/%m/%Y') BETWEEN '2018-11-09' AND '2019-03-05'

输出

YEAR    MONTH   DAY     VALUE
2018 11 9 1056
2018 11 10 6582
2018 12 9 6892
2018 12 10 5987
2019 3 5 5693

Demo on dbfiddle

关于mysql - 如何按年、月、日列选择 2 个日期之间的所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53456520/

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