Kdb:如果少于 2 位数字,则在字符串前添加前导零

Ril*_*Hun 2 formatting date zero kdb

我从日期时间原子中提取了年、日、月、小时、分钟和秒。如何在数字位数小于 2 的日、月、时、分、秒中添加前导零?

我有这样的事情:

  year:string`year$inDateTime;
  day:string`dd$inDateTime;
  if[1=(count day);day:("0",day)];
  month:string`mm$inDateTime;
  if[1=(count month);month:"0",month];
  hour:string`hh$inDateTime;
  if[1=(count hour);hour:"0",hour];
  minute:string`uu$inDateTime;  
  if[1=(count minute);minute:"0",minute];
  second:string`ss$inDateTime;
  if[1=(count second);second:"0",second];
Run Code Online (Sandbox Code Playgroud)

但有没有更干净的方法来实现这一点呢?

R. *_*ler 5

此行应该可以实现您正在寻找的内容:

"0"^-2$string`dd`mm`hh`uu`ss$x
Run Code Online (Sandbox Code Playgroud)

如果你想分配你的值,你可以使用这个:

`day`month`hour`minute`second set'"0"^-2$string`dd`mm`hh`uu`ss$x
Run Code Online (Sandbox Code Playgroud)

希望有帮助!