Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/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
Date 如何在kdb中格式化日期列_Date_Kdb - Fatal编程技术网

Date 如何在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没有内置的日期格式功能

我是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新手的可读性就越差。@MarkKelly
updatedateformatted:“/”sv/:(“/”vs/:string date)[;12 0]从t
可以满足最初的要求。但依我看,效率越高,对新手来说,可读性就越差