Qlikview 时间戳格式化至微秒?
Qlikview Timestamp formatting upto microseconds?
在 qlikview 中,通过将时间戳格式设置为:-
,我可以获得以毫秒为单位的时间戳
SET TimestampFormat='MM/DD/YYYY hh:mm:ss.fff';
我想知道是否有办法在 qlikview 中获取微秒级的时间戳。
据我从 QlikView 帮助中确定,微秒没有格式说明符,只有毫秒。
如果你需要从时间中获取微秒值,我很快就把下面的放在一起了(它可能会做得更整洁一点)。在这里,我假设您输入的时间字段称为 TimeField
。我们可以使用以下方法获取毫秒数:
=((TimeField-num(date(floor(TimeField)))-
num(maketime(hour(TimeField),minute(TimeField),second(TimeField))))*24*60*60)*1000
为了简单起见,我将上面的公式称为MillisecondCount
。然后,使用这个字段,我们可以计算微秒数:
=floor(((MillisecondCount)-floor(MillisecondCount))*1000)
最后,获取微秒的完整公式变为:
floor(((((TimeField-num(date(floor(TimeField)))-
num(maketime(hour(TimeField),minute(TimeField),second(TimeField))))*24*60*60)*1000)
-floor(((TimeField-num(date(floor(TimeField)))-
num(maketime(hour(TimeField),minute(TimeField),second(TimeField))))*24*60*60)*1000))*1000)
然后您可以使用 num()
格式化并将其附加到您的时间戳字符串。
从 TimeField 中获取微秒的公式:
((frac(TimeField) * 86400000) - floor(frac(TimeField) * 86400000)) * 1000 as Micro
我会使用这个公式来格式化:
Timestamp(TimeField - (Micro/86400000000)) & Num(floor(Micro), '000') as TimeStamp
在 qlikview 中,通过将时间戳格式设置为:-
,我可以获得以毫秒为单位的时间戳SET TimestampFormat='MM/DD/YYYY hh:mm:ss.fff';
我想知道是否有办法在 qlikview 中获取微秒级的时间戳。
据我从 QlikView 帮助中确定,微秒没有格式说明符,只有毫秒。
如果你需要从时间中获取微秒值,我很快就把下面的放在一起了(它可能会做得更整洁一点)。在这里,我假设您输入的时间字段称为 TimeField
。我们可以使用以下方法获取毫秒数:
=((TimeField-num(date(floor(TimeField)))-
num(maketime(hour(TimeField),minute(TimeField),second(TimeField))))*24*60*60)*1000
为了简单起见,我将上面的公式称为MillisecondCount
。然后,使用这个字段,我们可以计算微秒数:
=floor(((MillisecondCount)-floor(MillisecondCount))*1000)
最后,获取微秒的完整公式变为:
floor(((((TimeField-num(date(floor(TimeField)))-
num(maketime(hour(TimeField),minute(TimeField),second(TimeField))))*24*60*60)*1000)
-floor(((TimeField-num(date(floor(TimeField)))-
num(maketime(hour(TimeField),minute(TimeField),second(TimeField))))*24*60*60)*1000))*1000)
然后您可以使用 num()
格式化并将其附加到您的时间戳字符串。
从 TimeField 中获取微秒的公式:
((frac(TimeField) * 86400000) - floor(frac(TimeField) * 86400000)) * 1000 as Micro
我会使用这个公式来格式化:
Timestamp(TimeField - (Micro/86400000000)) & Num(floor(Micro), '000') as TimeStamp