从Azure表存储返回条目时,它们将根据分区和行键以字典顺序返回。如果您使用反向日期顺序字符串作为行键,则可以使用此选项来避免使用order by子句。
在.net中,为了生成以这种方式使用的行键,可以使用以下代码:
var rowKey = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks );
考虑到毫秒是javascript日期中最小的时间部分,最接近等效行密钥生成方法的是什么?
JS中的DateTime.UtcNow.Ticks
等效于:
(new Date()).getTime()
或者(更简单):
Date.now()
DateTime.MaxValue.Ticks
在JS中没有直接的等价物。但是,考虑到Date object
范围是-100,000,000
天到100,000,000
天相对于01/01/1970 UTC
(ref.)它可以用以下数字代替:
100000000 * 24 * 60 * 60 * 1000
所以相当于整个代码是这样的:
var rowKey = (new Date(100000000 * 24 * 60 * 60 * 1000 - (new Date()).getTime())).toDateString();