将空日期 0Nd 添加到 kdb 中空单元格的日期列
Add Null date 0Nd to date column for empty cells in kdb
尝试用空日期更新空单元格,即日期列为 0Nd
data: update date:0Nd^date from data where product not like "Debet:Loan";
注意:列类型为日期
Class
product
date
First
Debet:Instru:*
First
Debet:Instru:*
First
Debet:Loan
2020.10.12
First
Debet:Loan
2020.10.12
更改后 table 应该看起来像
Class
product
date
First
Debet:Instru:*
0Nd
First
Debet:Instru:*
0Nd
First
Debet:Loan
2020.10.12
First
Debet:Loan
2020.10.12
我认为这里的混淆在于,如果单元格为空且列(列表)的数据类型不混合,控制台会将单元格显示为空。
例如:
q)0Nd~first 0N 2021.01.01d
1b
这里的null实际上是0Nd类型,因为列表是日期类型。您可以认为这类似于控制台将显示整数浮点列表的方式 - 在这种情况下,f 由列表中的最后一个元素假设或“继承” >
q)`float 2 3 4
1 2 3 4f
如果您真的想在 table 中显示 0Nd,则必须将该列设为混合列表 - 从而强制控制台向您显示 Null 的确切类型,因为您不能根据列的类型:
q)([]a: 1 2 3;date:(0Nd;10;2021.01.01d))
a date
------------
1 0Nd
2 10
3 2021.01.01
请不要这样做 - 显示为空单元格的列中的 null 为 0Nd,即使它未明确显示在控制台中或可能在日期列表中显示为 0N,例如 0N 2021.01.01 2022.01.01
q)t:([]a: 1 2 3;date:(0Nd;2021.10.10;2021.01.01d))
q)t
a date
------------
1
2 2021.10.10
3 2021.01.01
q)exec date from t
0N 2021.10.10 2021.01.01
q)first exec date from t
0Nd
谢谢
尝试用空日期更新空单元格,即日期列为 0Nd
data: update date:0Nd^date from data where product not like "Debet:Loan";
注意:列类型为日期
Class | product | date |
---|---|---|
First | Debet:Instru:* | |
First | Debet:Instru:* | |
First | Debet:Loan | 2020.10.12 |
First | Debet:Loan | 2020.10.12 |
更改后 table 应该看起来像
Class | product | date |
---|---|---|
First | Debet:Instru:* | 0Nd |
First | Debet:Instru:* | 0Nd |
First | Debet:Loan | 2020.10.12 |
First | Debet:Loan | 2020.10.12 |
我认为这里的混淆在于,如果单元格为空且列(列表)的数据类型不混合,控制台会将单元格显示为空。
例如:
q)0Nd~first 0N 2021.01.01d
1b
这里的null实际上是0Nd类型,因为列表是日期类型。您可以认为这类似于控制台将显示整数浮点列表的方式 - 在这种情况下,f 由列表中的最后一个元素假设或“继承” >
q)`float 2 3 4
1 2 3 4f
如果您真的想在 table 中显示 0Nd,则必须将该列设为混合列表 - 从而强制控制台向您显示 Null 的确切类型,因为您不能根据列的类型:
q)([]a: 1 2 3;date:(0Nd;10;2021.01.01d))
a date
------------
1 0Nd
2 10
3 2021.01.01
请不要这样做 - 显示为空单元格的列中的 null 为 0Nd,即使它未明确显示在控制台中或可能在日期列表中显示为 0N,例如 0N 2021.01.01 2022.01.01
q)t:([]a: 1 2 3;date:(0Nd;2021.10.10;2021.01.01d))
q)t
a date
------------
1
2 2021.10.10
3 2021.01.01
q)exec date from t
0N 2021.10.10 2021.01.01
q)first exec date from t
0Nd
谢谢