Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String KDB:如何将可能的日期字符串与表的行匹配?_String_String Matching_Kdb - Fatal编程技术网

String KDB:如何将可能的日期字符串与表的行匹配?

String KDB:如何将可能的日期字符串与表的行匹配?,string,string-matching,kdb,String,String Matching,Kdb,我基本上只想创建一个日期列,它表示文件名的日期 我的表fileindir只是一列和4行,称为filepath: ":..\..\code\products\Q\ExtData\CIBC\availability\Global\EquityOnly\daily\bnyMellon_inventory\push_list_20190314_040253_Equity.csv" ":..\..\code\products\Q\ExtData\CIBC\availability\Global\Equit

我基本上只想创建一个日期列,它表示文件名的日期

我的表
fileindir
只是一列和4行,称为
filepath

":..\..\code\products\Q\ExtData\CIBC\availability\Global\EquityOnly\daily\bnyMellon_inventory\push_list_20190314_040253_Equity.csv"
":..\..\code\products\Q\ExtData\CIBC\availability\Global\EquityOnly\daily\bnyMellon_inventory\push_list_20190314_040306_Equity.csv"
":..\..\code\products\Q\ExtData\CIBC\availability\Global\EquityOnly\daily\bnyMellon_inventory\push_list_20190311_040321_Bond.csv"
":..\..\code\products\Q\ExtData\CIBC\availability\Global\EquityOnly\daily\bnyMellon_inventory\push_list_20190312_999999_Cash.csv"

我还有一个可能的日期列表,
2019.03.12 2019.03.11 2019.03.14
。如何将日期列表与上表的行进行匹配,以便获得一个新列,该列指定与filepath字符串匹配的日期值

这是解析文件路径以获取日期的方式,请注意“\”是转义符号,因此您需要将其写为“\ \”,而不是直接从系统命令中检索字符串

创建表

filesInDir:([]filePaths:(":..\\..\\code\\products\\Q\\ExtData\\CIBC\\availability\\Global\\EquityOnly\\daily\\bnyMellon_inventory\\push_list_20190314_040253_Equity.csv";
":..\\..\\code\\products\\Q\\ExtData\\CIBC\\availability\\Global\\EquityOnly\\daily\\bnyMellon_inventory\\push_list_20190314_040306_Equity.csv";
":..\\..\\code\\products\\Q\\ExtData\\CIBC\\availability\\Global\\EquityOnly\\daily\\bnyMellon_inventory\\push_list_20190311_040321_Bond.csv";
":..\\..\\code\\products\\Q\\ExtData\\CIBC\\availability\\Global\\EquityOnly\\daily\\bnyMellon_inventory\\push_list_20190312_999999_Cash.csv"))
创建日期列

update date:{"D"$("_"vs last "\\" vs x)[2]} each filePaths from `filesInDir
我还有一个可能的日期列表,2019.03.12 2019.03.11 2019.03.14。如何将日期列表与上表的行进行匹配,以便获得一个新列,该列指定与filepath字符串匹配的日期值

你能举例说明一下吗?不清楚你打算和期望看到什么

如果您只想使用一个“Flag”列来指示记录中的日期是否与日期范围匹配,只需在中使用一个
,即可进行匹配

dateRange:2019.03.12 2019.03.11 2019.03.14
update match:date in dateRange from `filesInDir
这将是输出:


如果您的所有文件路径都采用与示例文件路径相同的格式,您可以非常轻松地创建日期列,具体操作如下:

update date:"D"$8#'103_'filePaths from filesInDir

然后使用此列匹配您的日期

另一种使用
0:

update date:raze("   D";"_")0:filePaths from filesInDir
它取决于文件路径中出现的<代码>\