使用Azure表存储在WCF查询中强制字符串字段为DateTime

时间:2016-06-20 10:34:10

标签: node.js wcf azure azure-table-storage

所以,快速概述我正在做的事情: 我们目前正在使用“azure-storage”npm模块从Node.js云服务将事件存储到Azure Table存储。我们将这些事件的时间戳存储在存储中(而不是使用Azure定义的事件)。

现在,我们编写了一个通用存储处理程序脚本,目前只将所有值存储为字符串。为了保存重构这个脚本,我希望有一种方法可以调整查询。

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

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

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

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

是否会像以下工作一样,或者最好的方法是什么?

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

1 个答案:

答案 0 :(得分:1)

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

如果您以_timestamp格式存储yyyy-MM-ddTHH:mm:ssZ,那么您可以简单地执行基于字符串的查询,例如

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

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