Azure 找到操作数类型';Edm.DateTime';和';Edm.String';对于操作员类型';大于或等于';

Azure 找到操作数类型';Edm.DateTime';和';Edm.String';对于操作员类型';大于或等于';,azure,datetime,odata,azure-table-storage,azure-tablequery,Azure,Datetime,Odata,Azure Table Storage,Azure Tablequery,尝试根据时间戳从Azure表中获取实体时出错,该时间戳的类型为Edm.DateTime: StorageError: A binary operator with incompatible types was detected. Found operand types 'Edm.DateTime' and 'Edm.String' for operator kind 'GreaterThanOrEqual' 代码: let res:IQueryPrePostAuthResponse[]=[]

尝试根据时间戳从Azure表中获取实体时出错,该时间戳的类型为Edm.DateTime

StorageError: A binary operator with incompatible types was detected. Found operand types 'Edm.DateTime' and 'Edm.String' for operator kind 'GreaterThanOrEqual'
代码:

let res:IQueryPrePostAuthResponse[]=[];
let query=new TableQuery();
query=query.where('PartitionKey eq',searchQuery.user\u id);
const entGen=TableUtilities.entityGenerator;
const dateFrom=entGen.DateTime(新日期(searchQuery.Date_from));
const dateTo=entGen.DateTime(新日期(searchQuery.Date_to));
query=query.and(

“Timestamp>=”和Timestamp,当我在发送到query之前打印dateTodateFrom

const entGen=TableUtilities.entityGenerator;
const dateFrom=entGen.DateTime(新日期(searchQuery.Date_from));
const dateTo=entGen.DateTime(新日期(searchQuery.Date_to));
console.log(dateFrom);
console.log(dateTo);
我在输出中得到了这个:- 经过多次调试后,我知道我发送dateFromdateTo的方式不正确。
正确的方法是dateFrom.\udateTo.\u。但是这应该在Azure表或OData查询中提到,但在那里没有提到。

根据Odata Docs查询比较运算符,比较运算符两侧的数据类型必须兼容。

这会造成混淆,因为即使两者的类型相同,也会出现错误。正确的代码如下:-

let res:IQueryPrePostAuthResponse[]=[];
let query=new TableQuery();
query=query.where('PartitionKey eq',searchQuery.user\u id);
const entGen=TableUtilities.entityGenerator;
const dateFrom=entGen.DateTime(新日期(searchQuery.Date_from));
const dateTo=entGen.DateTime(新日期(searchQuery.Date_to));
query=query.and(
'时间戳>=?和时间戳