我正在使用 azure 表存储并尝试仅过滤某一特定日期的记录。
datetime filterDate = '3/29/2016 12:00:00 AM'
我尝试了以下查询,但它提取了第 29 日和第 30 日的记录。可能是什么问题?
var queryToday = TableQuery.GenerateFilterConditionForDate("Timestamp", QueryComparisons.GreaterThanOrEqual, filterDate);
var querySelectedDate = TableQuery.CombineFilters(queryToday, TableOperators.And, TableQuery.GenerateFilterConditionForDate("Timestamp", QueryComparisons.LessThan, filterDate.AddDays(1)));
我调试发现过滤字符串为
(Timestamp ge datetime'2016-03-29T07:00:00.0000000Z') and (Timestamp lt datetime'2016-03-30T07:00:00.0000000Z')
最佳答案
看起来像是时区问题。您可能想要在 3/29 午夜到 3/30 午夜之间进行搜索,但它却在 3/29 上午 7 点到 3/30 上午 7 点之间进行搜索。
您居住在 UTC-7 时区(如 MDT)还是 UTC +7 时区(如 ETC)?该 API 很可能会尝试补偿您/您的网站所在的时区以及它假定时间戳所在的时区(可能是 UTC 时间)
关于 azure 时间戳过滤选择错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320408/