c# - 在 SQLIte 中使用哪种数据类型来存储 TimeTaken 字段?

标签 c# sqlite time

我想在 SQLite 数据库中创建一个字段(使用 C#)来存储所用时间(持续时间)字段。该值将采用 hr:min:sec 格式,如 '10:10:00' 表示 10 小时 10 分 00 秒。我应该为此使用哪种数据类型?我知道 DateTime 不够用,因为它用于存储日期时间。

最佳答案

在 C# 中使用 TimeSpan。这意味着表示耗时,这就是您所描述的。

在 SQLite 中,您应该存储一个 INTEGER 类型,以便您的数据可以排序。您只需决定所需的粒度。

例如,如果您关心可能的绝对最佳精度,则可以存储 TimeSpan.Ticks。为此,您需要一个 8 字节的 INTEGER。加载时,您可以使用 TimeSpan.FromTicks 或构造函数 new TimeSpan(ticks)

更有可能的是,您希望存储整数秒,您可以从 TimeSpan.TotalSeconds 中获取。您可能为此使用 4 个字节的 INTEGER。加载时,您可以使用 TimeSpan.FromSeconds 从整数重新创建时间跨度。

关于c# - 在 SQLIte 中使用哪种数据类型来存储 TimeTaken 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18307632/

相关文章:

c# - 迁移到 netcore 2.0 会导致 Linux 和 Mac 上的 System.IO.Filesystem 出现问题

c# - 是否可以在 ASP.NET Core MVC 应用程序中运行 Blazor 客户端页面?

sqlite - Flutter SQLite数据库表存在但未被SQFLite检测到

sqlite - 对于个人提要阅读器等应用程序,sqlite3 与 CouchDB 的优势是什么?

带有动态 Where 子句的 Android rawquery

time - 如何区分 LocalDateTime 中何时缺少 "second field"

c# - VS2012 添加服务引用不更新配置文件

time - clock_getres和内核2.6

date - 在 SQLite 中操作日期时间

c# - 使用 Thinktecture Identity Server 时保留 OAuth2 不记名 token