在mysql中用整数表示的日期和时间,如何导入到DolphinDB中

如下图所示是mysql中一张表的样本数据,

date_20200614124552.png
其中的trade_date表示日期,数据类型是int,20100104表示2010年1月4日;trade_time是时间,数据类型也是int,93100表示09:31:00。

现在在DolphinDB database中,建库脚本如下:

monthDB = database(,VALUE, 1990.01M..2050.12M)
tickDB = database(, HASH, [SYMBOL, 20])
db = database("dfs://minute_price", COMPO, [monthDB, tickDB])
columns = `trade_date`trade_time`secu_code`int_code`code_type`open`close`high`low`volume`turnover
types = [DATE,TIME,SYMBOL,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE]
db.createPartitionedTable(table(10:0, columns, types), `price_data,`trade_date`secu_code)

也就是trade_date,trade_time要转换成date和time类型,我在执行下面代码时:

schema=select name,type from extractSchema(conn,`quote_1m)
update schema set type="TIME" where name="trade_time"
update schema set type="DATE" where name="trade_date"
mysql::loadEx(conn, db,`quote_1m, `trade_date`secu_code, schema);

提示Couldn't convert from INT to DATE。请教一下这个应该怎么转换?

阅读 2.5k
2 个回答

这个可以在mysql查询时,将int转成date和time,代码如下所示:

db=database("dfs://minute_price")
query="select date(trade_date) as date ,time(trade_time) as time, secu_code,int_code,code_type,open,close,high,low,volume,turnover from trades"
mysql::loadEx(conn, db, "price_data", `trade_date`secu_code, query);
新手上路,请多包涵

这种问题我们生产中遇到过类似的场景,不过我们是oracle迁移到postgresql中。

数据入库(DolphinDB)需要将trade_date、trade_time强制转换成时间类型,简单的看了下api文档,使用datetime关键字,可能实际操作时候还比较麻烦,要先转换成字符串(进行格式转换),再转换成时间类型。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题