关于node.js:在Azure表存储的WCF查询中将字符串字段强制设置为DateTime

因此,快速概述一下我在做什么:
当前,我们正在使用" azure-storage" npm模块将事件从Node.js云服务存储到Azure Table存储中。我们将这些事件的时间戳存储在存储中(与使用Azure定义的时间戳相对)。

现在,我们已经对通用存储处理程序脚本进行了编码,该脚本目前仅将所有值存储为字符串。为了节省重构此脚本的时间,我希望可以有一种方法来调整查询。

所以,我的问题是,是否可以按日期时间查询,其中存储的值实际上不是日期时间字段,而是字符串?

我的原始查询包括以下内容:

1
.where("_timestamp ge datetime'?'", timestamp );

在上面的代码中,我需要以某种方式使查询将_timestamp视为日期时间而不是字符串...

会进行以下工作,还是最好的方法?

1
.where("datetime _timestamp ge datetime'?'", timestamp );

AFAIK,如果属性类型在Azure表中为String,则不能将其转换为DateTime。因此,您将无法使用.where("_timestamp ge datetime'?'", timestamp );

如果您以yyyy-MM-ddTHH:mm:ssZ格式存储_timestamp,则只需执行基于字符串的查询,例如

1
.where("_timestamp ge '?'", timestamp );

,除了该查询将执行全表扫描并且不会成为优化查询的事实之外,它应该可以正常工作。但是,如果您以其他格式存储,则可能会得到不同的结果。