Date 如何在kdb中格式化日期列
我是KDB的新手。我有一个KDB表,我正在查询它:Date 如何在kdb中格式化日期列,date,kdb,Date,Kdb,我是KDB的新手。我有一个KDB表,我正在查询它: select[100] from table_name 现在,该表中有一些日期列,它们的日期以这种格式存储 yyyy.mm.dd 我希望查询该表并检索特定格式(如mm/dd/yyyy)的日期字段。如果这是任何其他RDBMS表,我会这么做: 从表名称中选择日期(日期字段,'mm/dd/yyyy') 我需要kdb等效以上。我已经尽了最大努力浏览了kdb文档,但找不到任何函数/示例/语法来完成这项工作。 提前谢谢 我认为KDB没有内置的日期格式功能
select[100] from table_name
现在,该表中有一些日期列,它们的日期以这种格式存储
yyyy.mm.dd
我希望查询该表并检索特定格式(如mm/dd/yyyy)的日期字段。如果这是任何其他RDBMS表,我会这么做:从表名称中选择日期(日期字段,'mm/dd/yyyy')
我需要kdb等效以上。我已经尽了最大努力浏览了kdb文档,但找不到任何函数/示例/语法来完成这项工作。
提前谢谢 我认为KDB没有内置的日期格式功能。 最可靠的方法是自己格式化日期。 比如说
t: ([]date: 10?.z.d);
update dateFormatted: {x: "." vs x; x[1],"/",x[2],"/",x[0]} each string date from t
给予
或者,执行相同格式的更有效方法是
update dateFormatted: "/"sv/:("."vs/:string date)[;1 2 0] from t
我认为KDB没有内置的日期格式化功能。 最可靠的方法是自己格式化日期。 比如说
t: ([]date: 10?.z.d);
update dateFormatted: {x: "." vs x; x[1],"/",x[2],"/",x[0]} each string date from t
给予
或者,执行相同格式的更有效方法是
update dateFormatted: "/"sv/:("."vs/:string date)[;1 2 0] from t
正如Anton所说,KDB没有一种内置的方式来指定日期格式。但是,您可以单独提取日期的组成部分,并根据需要重新排列 对于带有日期列的示例表t:
q)t
date
----------
2008.02.04
2015.01.02
q)update o:{"0"^"/"sv'flip -2 -2 4$'string`mm`dd`year$\:x}date from t
date o
-----------------------
2008.02.04 "02/04/2008"
2015.01.02 "01/02/2015"
函数内部从右到左:在串接结果之前,我们使用'mm`dd`year$:x提取月、日和年组件。然后,我们在每个月和日组件之前填充一个空字符(
-2-2 4$”
),并添加“/”格式(“/”sv'flip
)。最后,前导的空值填充为“0”(“0”^
) 正如Anton所说,KDB没有内置的方式来指定日期格式。但是,您可以单独提取日期的组成部分,并根据需要重新排列
对于带有日期列的示例表t:
q)t
date
----------
2008.02.04
2015.01.02
q)update o:{"0"^"/"sv'flip -2 -2 4$'string`mm`dd`year$\:x}date from t
date o
-----------------------
2008.02.04 "02/04/2008"
2015.01.02 "01/02/2015"
函数内部从右到左:在串接结果之前,我们使用'mm`dd`year$:x提取月、日和年组件。然后,我们在每个月和日组件之前填充一个空字符(-2-2 4$”
),并添加“/”格式(“/”sv'flip
)。最后,前导的空值填充为“0”(“0”^
) 查看此文件了解日期时间格式。它支持excel格式的日期和时间。虽然它可能不适合格式化大量对象(但如果不同的日期非常少,则可以使用键控表和lj
进行查找)
查看此文件了解日期时间格式。它支持excel格式的日期和时间。虽然它可能不适合格式化大量对象(但如果不同的日期非常少,则可以使用键控表和lj
进行查找)
现在可用于日期时间解析和转换现在可用于日期时间解析和转换好的@MarkKelly
更新日期格式:“/”sv/:(“”vs/:string date)[;1 2 0]从t
可以满足原始请求。但实际上,它的效率越高,Q新手的可读性就越差。@MarkKellyupdatedateformatted:“/”sv/:(“/”vs/:string date)[;12 0]从t
可以满足最初的要求。但依我看,效率越高,对新手来说,可读性就越差