gpt4 book ai didi

mysql - 从 mysql 中检索 SELECT 语句中的日期

转载 作者:行者123 更新时间:2023-11-29 14:31:24 24 4
gpt4 key购买 nike

我编写了以下 mysql 代码:

select trade_dt, 
ticker_id,
settle_price,
volume
from hist
where volume > 0 and trade_dt between '06/22/2011' and '06/30/2011';

但不幸的是,它返回时间窗口之外的日期,如下所示:

+------------+------------+--------------+--------+
| trade_dt | ticker_id | settle_price | volume |
+------------+------------+--------------+--------+
| 06/23/2006 | N (Jul 06) | 156.900000 | 90 |
| 06/26/2006 | N (Jul 06) | 155.600000 | 63 |
| 06/27/2006 | N (Jul 06) | 159.300000 | 79 |
| 06/28/2006 | N (Jul 06) | 159.600000 | 57 |
| 06/29/2006 | N (Jul 06) | 143.400000 | 511 |
| 06/30/2006 | N (Jul 06) | 140.200000 | 342 |
| 06/23/2005 | V (Oct 05) | 151.200000 | 61 |
| 06/23/2011 | U (Sep 11) | 22.500000 | 6284 |
| 06/24/2011 | U (Sep 11) | 23.100000 | 4505 |
| 06/27/2011 | U (Sep 11) | 22.650000 | 3118 |
| 06/28/2011 | U (Sep 11) | 22.100000 | 3707 |
| 06/29/2011 | U (Sep 11) | 21.500000 | 5830 |
| 06/30/2011 | U (Sep 11) | 20.750000 | 9207 |
| 06/23/2008 | F (Jan 09) | 23.260000 | 2 |

我想知道这是否是因为我的 trade_dt 被定义为 hist 表中的字符串。EDITED 表用日期替换 char(10)

desc hist;
+-----------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+----------------+
| futures_id | int(11) | NO | PRI | NULL | auto_increment |
| trade_dt | date | NO | | NULL | |
| ticker_id | varchar(46) | NO | MUL | NULL | |
| settle_price | decimal(10,6) | NO | | NULL | |
| change_in_price | decimal(10,6) | NO | | NULL | |
| volume | bigint(11) | NO | | NULL | |
| open_int | bigint(11) | NO | | NULL | |
+-----------------+---------------+------+-----+---------+----------------+

如何解决我的约会问题?

好的,我将 trade_dt 字段更改为 date 而不是 char(10),现在当我运行以下语句来加载将数据写入数据库时​​,它会插入日期空白,只是因为日期在数据文件中的格式如何。

LOAD DATA LOCAL INFILE '$fn' INTO TABLE $tn FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (trade_dt,ticker_id,settle_price,change_in_price, volume, open_int);

这是原始数据的示例:

03/30/2012,Z (Dec 12),25.81,25.81,25.50,25.70,25.60,-0.45,24,0,318

最佳答案

正如您所注意到的,这是因为数据类型是字符串。您可以通过将列转换为查询中的日期类型来获得正确的结果,但这效率非常低。唯一合理的修复方法是更改​​表定义内的 trade_dt 列的类型。

关于mysql - 从 mysql 中检索 SELECT 语句中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961119/

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