【问题标题】:How do you handle NULLs in a Date field through your C# code?如何通过 C# 代码处理日期字段中的 NULL?
【发布时间】:2010-10-04 19:43:42
【问题描述】:

我目前正在将日期字段设置为 Datetime.Now,这是通过数据库上的 SQL 查询完成的。

我做了一个

SELECT NVL(mydatefield, sysdate) FROM myView;

这不是我能想到的最优雅的方法。更好的做法是检查 NULL。 我发现 DateTime 类不支持我用于 int 值的语法。

您看到使用了哪些方法?你的偏好是什么?如何让 DateTime 处理空值? 我不希望我的前端代码中的DateTime.ParseExact 引发异常。

【问题讨论】:

    标签: c# datetime nullable


    【解决方案1】:

    DateTime? 是可以为空的DateTime。您还可以使用 default(DateTime) 查找未设置的 DateTime 字段。最后一种选择是使用 DateTime.MinDateTime.Max 作为特殊值。

    您可以使用DateTime.TryParse,而不是DateTime.ParseExact

    string input = "2010-10-04";
    DateTime result;
    bool success = DateTime.TryParse(input, out result);
    

    【讨论】:

    • @abhi,根据我的经验,它工作得很好。我用它所有的时间。有具体的例子吗?
    • default(DateTime) == DateTime.MinValue
    • @Austin / Brad,我已将谷壳与小麦分开,但这是我正在尝试使用的东西。字符串 s;日期时间 dt = new DateTime(); s = dt ? DateTime.Now.ToString(): "空";
    • @abhi,您在此处的简单dt 条件不是有效条件。 s = dt == null ? DateTime.Now.ToString() : "EMPTY"; 怎么样?另外,根据速度和时间,这个陈述可能永远不会评估为真(我知道你可能只是在做一个例子)。
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多