csv中time这一列是类似093100这样的值,怎么导入

time这一列是093100这样的值(如下图)

attachments-2021-05-WcN7kg9y60ac9bad3bde7.png

在导入DolphinDB时,我把这一列指定的类型为time,结果查出来的是NaT,这种情况要怎么处理呢?

attachments-2021-05-nLPyEz9s60ac9bb2592bd.png

我的库表定义如下:

db=database("dfs://moneyFlow",VALUE,2011.01.01..2011.12.31)
columns=`ticker`date`time`open`close`high`low`tvrvalue`tvrvolume
types=[SYMBOL,DATE,SECOND,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE]
db.createPartitionedTable(table(1000:0,columns,types), "minDataNew", `date)


请先 登录 后评论

1 个回答

Johhny

可以通过schema参数指定日期和时间类型的格式,即把time的数据类型指定为SECOND,format指定为HHmmss,示例代码如下:

db=database("dfs://moneyFlow",VALUE,2011.01.01..2011.12.31)
columns=`ticker`date`time`open`close`high`low`tvrvalue`tvrvolume
types=[SYMBOL,DATE,TIME,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE]
db.createPartitionedTable(table(1000:0,columns,types), "minDataNew", `date)

fileName="D:\\20120405.csv"

schema1=extractTextSchema(fileName)
update schema1 set type="SECOND"  where name=`time
schema1["format"]=array(STRING, schema1.rows()).fill!(2,"HHmmss") 

//方式1:先读到内存表,再append
t=loadText(filename=fileName,schema=schema1)
loadTable("dfs://moneyFlow","minDataNew").append!(t)

//方式2:直接导入数据库
loadTextEx(dbHandle=db,  tableName="minDataNew", partitionColumns=`date,  filename=fileName, schema=schema1) 

更多描述请参阅DolphinDB文本加载教程 2.3节。

请先 登录 后评论