q中的字符串转换限制,TOK中的星号

问题描述

我正在尝试将int值转换为分钟,在某些情况下,它会在结果中给星星*

string "U"$"99:59" / "99:59"
string "U"$"100:00" / "**:00"

这颗星星出现的规则是什么?

更新几秒钟:

string "V"$"1000" / "10:00:00"
string "V"$"10000" / "**:00:00"
string "V"$"100000" / "10:00:00"
string "V"$"1000000" / "**:00:00"

是否可以配置此规则,例如停止对原始值进行涂抹?

解决方法

我认为出现的星星只是kdb的说法,即无法显示结果。 分钟和第二个数据类型的格式分别为hh:mm和hh:mm:ss。因此,如果kdb读取小时部分的3位数字(即大于99位),则会出现星星。

如果要将字符串转换为分钟数据类型,则kdb会将最后两个字符转换为分钟,其余转换为小时,例如

"U"$"1234" / 12:34
"U"$"12345" / **:45

将字符串转换为秒时,会发生类似的情况。如果字符串的长度为6或更大,则最后两个字符将转换为秒。否则,将秒设置为00。然后,将字符串的其余部分如上所述转换为hh:mm。为了说明这一点,请看:

"V"$"1234" / 12:34:00
"V"$"12345" / **:45:00
"V"$"123456" / 12:34:56
"V"$"1123456" / **:34:56

我还应该注意,即使出现恒星,您仍然可以像往常一样进行时间算术之类的操作,例如

"U"$"100:00 / **:00
("U"$"100:00")-"U"$"1:00" / 99:00

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...