c# - C# 和 sql 中的负日期

标签 c# sql sql-server datetime negative-number

我正在使用 SQL Server 数据库编写一个 C# 程序,但我无法从所有建议的处理负日期和正日期的解决方案中进行选择。实际上,以下是我找到的解决方案:

  • 使用 bool 值来表示 BC 或 AC;
  • 将日期组成部分(jj、mm、(-)aaaa)存储为 int 并创建一个处理验证以查看日期是否存在的类。

我确信还有其他类型的方法,但这些实际上对我来说是最容易理解的方法。

该软件用于帮助角色书的生日和书中的其他角色事件。所以说这本书的开始日期是“10/01/0023”(jj/mm/aaaa),这是人物所处时代的开始,而人物当时已经80岁了,他出生了“02/03/-0057”。

我的问题集中在上述两种解决方案中哪一种在这种情况下最有效。我已经阅读了与我相关的内容,但我不太明白,例如,该软件如何处理从年长到年轻的字符排序,并验证出生日期不晚于死亡日期,这没有任何意义...

我希望这能澄清我的问题?

我真诚地感谢所有花时间阅读本文的人。

最佳答案

然后我建议您将日期存储为 ISO 格式的数字:YYYYMMDD

这样您就可以将 BC 日期存储为 -YYYYMMDD,将 AD 存储为 YYYYMMDD。它还可以轻松比较日期:

例如。 if ( -00801012 < 00110214 ) { ... } 或者 if ( 19741015 < 20140228 ) { ... }

当您想在屏幕上显示日期时,您需要断言该信号。 boolean isAD = false; If ( mydate > 0 ) { isAD = true; }

你可以使用abs来格式化你的日期

关于c# - C# 和 sql 中的负日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248280/

相关文章:

sql-server - 使用 DATEADD 添加秒数会返回四舍五入为分钟的值 - 为什么?

javascript - 如何在Javascript中以正确的顺序输入数据?

c# - 调用 IgnoreQueryFilters 后如何在 EntityFramework Core 中再次启用 QueryFilters?

mysql - 删除不同数据库中没有相同代码的行

php - 在 Windows 以外的平台上使用 sqlsrv_connect

php - MySQL插入语句不会插入?

mysql - 根据ID从多个表中获取数据

c# - 确定文本文件编码架构

c# - 如何将文件拖放到应用程序中?

c# - 使用 Linq 遍历层次结构表