C# 如何将日期时间值最大为7十进制毫秒?

C# 如何将日期时间值最大为7十进制毫秒?,c#,datetime,datetime-format,C#,Datetime,Datetime Format,我试图将日期时间加载到json结构中,日期时间被存储为最大值,以毫秒为单位有3位小数,这在我将其解析到db时会导致问题,因为它会将其转换为确切的日期,而不是无限大 我如何设置任何日期时间,其中年份为9999,毫秒999有7位小数,以毫秒为单位,所有这些都是9 我尝试将该值设置为Datetime.MaxValue,但它也只返回3位小数(毫秒)您不必将值从应用程序逐个转换到数据库存储。 应用程序中的DateTime.MaxValue只是信息的同义词。 假定在一段时间内没有限制值 尽管您也可以将其作为

我试图将日期时间加载到json结构中,日期时间被存储为最大值,以毫秒为单位有3位小数,这在我将其解析到db时会导致问题,因为它会将其转换为确切的日期,而不是无限大

我如何设置任何日期时间,其中年份为9999,毫秒999有7位小数,以毫秒为单位,所有这些都是9


我尝试将该值设置为Datetime.MaxValue,但它也只返回3位小数(毫秒)

您不必将值从应用程序逐个转换到数据库存储。 应用程序中的DateTime.MaxValue只是信息的同义词。 假定在一段时间内没有限制值

尽管您也可以将其作为dbNUll存储在名为“EndDate”的db列中。 如果您想区分“用户未输入值”和“用户输入的无穷大”,其中已经需要dbNull,请将您的无穷大存储为一个简单的年份2200或在您的上下文中无法访问的任何内容。如果数据库允许日期值为负数,那么这也是存储异常值的一个技巧


如果您使用数据库提供程序创建json,请将其添加为您的映射规则。

我完全不清楚您的目的是什么,但
DateTime.MaxValue.ToString(“yyyy-MM-dd HH:MM:ss.fffffff”)
生成一个小数毫秒为7位的值。请注意,如果您指的是带有“DB”的SQL Server,则在
DATETIME
的精度上存在限制,任何解析都无法克服;你需要
DATETIME2
这样做。这会返回一个字符串还是一个datetime?现在,当我使用标准使用的3的7位小数评级器时,它似乎起作用了。。该数据库是一个postgresql server。
ToString
返回一个字符串,顾名思义。。。
DateTime.MaxValue
的基础值具有所需的所有精度;如果处理此值的一方将其截断,则这是一个单独的问题。小数点后7位是一个刻度,即100ns。所以只需获取刻度:DateTime maxDate=DateTime.MaxValue;长刻度=maxDate.ticks//100纳秒