什么是 .Net 类型相当于 Paradox 数据库中的时间
Posted
技术标签:
【中文标题】什么是 .Net 类型相当于 Paradox 数据库中的时间【英文标题】:What is the .Net type equivalent to Time in Paradox Database 【发布时间】:2012-11-08 09:49:55 【问题描述】:我正在通过二进制读取访问 Paradox 文件。
但我有一个问题。我不知道我应该从 Paradox 数据库中的时间进行什么转换:
时间跨度 日期时间 或者我应该转换为字符串【问题讨论】:
【参考方案1】:DateTime
将始终包含日期部分。
TimeSpan
很可能是您需要的。它可以保持小时,分钟......没有日期。
编辑:对错误评论的反应
建议的时间到日期时间的映射只是不正确的抽象。然后你的 C# 属性包含一个错误的日期 01/01/0001(不是预期的),并且在你访问这样的属性时大部分都会被处理。
TimeSpan
可以准确地显示我们想要的:从午夜开始的时间。因此,如果我们从 DB 类型映射时间,这将为我们提供开箱即用的功能:可以作为时间加载,可以作为时间存储。
【讨论】:
除了TimeSpan
代表一个持续时间而不是一个特定的时间。错误的抽象。数据库时间值一般映射到DateTime
,日期设置为0001-01-01。
这不是真的。如果您有 SQL Server 2008 类型的 Time,则必须将其映射到 TimeStamp。在这种情况下,DateTime 将包含默认值,这不是我们想要的。所以作为 SQL 类型时间的映射 - C# 有 TimeStamp
@NicholasCarey .NET 框架团队不同意您的抽象想法。 DateTime 包含以下属性(这有点直接与您相矛盾。):public TimeSpan TimeOfDay get;
您所说的,是因为经过的时间可能比 24 小时还要多。但是当问题是:如何将 db time
映射到 C# - TimeSpan
就是答案。
@Nicholas Carey 我认为特定时间总是从一天开始的时间,即 00:00 所以我认为,我应该接受这个答案。以上是关于什么是 .Net 类型相当于 Paradox 数据库中的时间的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 .Net 应用程序中读取 Paradox 7.x .db 文件?