如何使用 c# 在 azure 表存储中查找 2 dateTime 之间的小时数

Posted

技术标签:

【中文标题】如何使用 c# 在 azure 表存储中查找 2 dateTime 之间的小时数【英文标题】:how to find the hours between 2 dateTime in azure table storage using c# 【发布时间】:2020-10-28 13:17:37 【问题描述】:

我想在 azure 表存储中找到小时数

public UserTimeSheet GetTotalHoursByYear()
    
        CloudTable cloudTable = GetCloudTable();
        var query = new TableQuery<DynamicTableEntity>()
        
            SelectColumns = new List<string>()
        
            "SignInTime", "SignOutTime"
        
        ;
        var queryOutput = cloudTable.ExecuteQuerySegmented<DynamicTableEntity>(query, null);

        var results = queryOutput.Results.ToList();
        foreach (var entity in results)
        

        
        return null;// results.ToList();
    

我已返回选择 2 个 dateTime 列的代码。但我不知道如何获得时间差异并总结一下。请我解决这个问题。

【问题讨论】:

您可以使用此答案 ***.com/questions/2821040/… 中显示的解释计算两个 DateTime 变量之间的差异。我想使用这些列不是问题 【参考方案1】:

请使用下面的代码(请随时修改代码以满足您的需要):

        //other code.

        var queryOutput = cloudTable.ExecuteQuerySegmented<DynamicTableEntity>(query, null);

        var results = queryOutput.Results.ToList();
        foreach (var entity in results)
        
            var start = DateTime.Parse(entity.Properties["SignInTime"].StringValue);
            var end = DateTime.Parse(entity.Properties["SignOutTime"].StringValue);                

            var diff_hour = end.Subtract(start).Hours;
            Console.WriteLine("the hours between signIn and signOut is: " + diff_hour);
        

这是我这边的测试结果:

注意:

在我的表格中,SignInTimeSignOutTime 的类型是 String,而不是 DateTime。如果您将 2 列的类型设置为 DateTime,您只需对我的代码稍作更改即可。

【讨论】:

以上是关于如何使用 c# 在 azure 表存储中查找 2 dateTime 之间的小时数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure 表存储中查找与值数组不匹配的记录?

使用 c# 从 Azure 存储帐户表中检索记录,同时使用 xamarin 开发跨平台应用程序给出错误

查找对 Azure 存储表的删除实体调用

如何将数据插入到 Azure 表存储中

C# 适用于 Azure 表存储上的地理数据的类型

从 Azure 表存储中获取 1000 多个数据集