问题描述
我正在尝试将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