【发布时间】:2021-08-15 17:36:35
【问题描述】:
在尝试根据 Edm.DateTime 类型的 Timestamp 从 Azure Table 获取实体时出错:
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_id);
const entGen = TableUtilities.entityGenerator;
const dateFrom = entGen.DateTime(new Date(searchQuery.date_from));
const dateTo = entGen.DateTime(new Date(searchQuery.date_to));
query = query.and(
'Timestamp >= ? and Timestamp <= ?',
dateFrom,
dateTo,
);
在代码中,两个变量(dateFrom, & dateTo)都是 DateTime 类型,Timestamp 是日期时间类型。 根据Odata Docslink查询比较运算符,比较运算符两边的数据类型必须兼容。这是我的情况,两者都是一样的,然后我得到一个错误。
【问题讨论】:
标签: azure datetime odata azure-table-storage azure-tablequery