什么是 .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 数据库中的时间的主要内容,如果未能解决你的问题,请参考以下文章

将 PHP 连接到 Paradox 数据库

Paradox 如何管理 null 和空值?

Paradox DB 文件签名

是否可以在 .Net 应用程序中读取 Paradox 7.x .db 文件?

在哪里可以找到 Microsoft Paradox ODBC 驱动程序错误代码列表?

读取 Paradox 数据库文件