当前位置: 首页 > 面试题库 >

1900年1月1日的datetime问题

慎兴业
2023-03-14
问题内容

我在sql server中有一个datetime列及其可选字段,如果用户决定不输入,那么我想在表中插入NULL值,并定义如下内容:

@deadlineDate datetime = null

当我插入sql server时,我在asp.net中有此代码

private DateTime? GetDeadlineDate()
{
    DateTime? getDeadlineDate = null;
    if (!string.IsNullOrEmpty(DeadlineDate.SelectedDate))
    {
       getDeadlineDate = DateTime.Parse(DeadlineDate.SelectedDate).Date;
    }
    if (!getDeadlineDate.HasValue)
    {
        return null;
    }
    return getDeadlineDate.Value;

}

但问题是:其插入

1900-01-01 00:00:00.000

在SQL表而不是 NULL

我在这里做错了什么?

更新:

private DateTime? GetDeadlineDate()
{
    DateTime? getDeadlineDate = null;
    if (!string.IsNullOrEmpty(DeadlineDate.SelectedDate))
    {
       getDeadlineDate = DateTime.Parse(DeadlineDate.SelectedDate).Date;
    }
    if (!getDeadlineDate.HasValue)
    {
        return DBNull.Value; //throws error....
    }
    return getDeadlineDate.Value;          
}

问题答案:

假设您有:

DateTime? date = GetDate();
command.Parameters.Add("@date").Value = date;

如果date == null您想插入SQL NULL,DBNull.Value那么您应该下一步:

DateTime? date = GetDate();
command.Parameters.Add("@date").Value = (object)date ?? DBNull.Value;

意思是:

if(date != null)
     // use date
else
     // use DBNull.Value

如果要在函数中注意可空的datetime,则应使用以下方式声明:

private object GetDate()
{
    DateTime date;
    return DateTime.TryParse(selectedDate, out date) ? date : DBNull.Value;
}

command.Parameters.Add("@date").Value = GetDate();

但我不建议您这样做,并在下一个步骤中使用:

command.Parameters.Add("@date").Value = (object)GetDate() ?? DBNull.Value;


 类似资料:
  • 问题内容: 该的getTime()获取以毫秒为某一特定日期时间。能否可靠地用于18世纪的约会。我们使用Millis并将其存储在字符串变量中以备将来比较。过去可以使用多长时间有限制? 问题答案: 如果您要比较遥远的过去的日期/时间,我强烈建议您看一下JodaTime。或者实际上是任何类型的日期/时间比较和计算。这是一个很棒的图书馆! 不要依靠getTime()做你想做的事情。至少考虑使用Java的C

  • 问题内容: 我有ASP经典页要在表中插入记录。我正在为5个字段使用表单元素。[ABC]([code],[updatedate],[flag],[Mfdate]。当用户未选择Mdate时,使用日期控件在Mdate中获取用户选择的日期,该查询在我的ASP中形成页面如下 在SQL Server中运行时,它将插入日期,但用户尚未选择任何值。 为什么会这样呢? 为数据类型是。 问题答案: 您尚未将其指定为n

  • 问题内容: 使用date(1970年1月1日)作为时间操纵的默认标准有什么原因吗?我已经在Java和Python中看到了这个标准。我知道这两种语言。还有其他遵循相同标准的流行语言吗? 请描述。 问题答案: 这是Unix时间的标准。 Unix时间或POSIX时间是一种用于描述时间点的系统,时间点定义为自1970年1月1日午夜多点协调世界时(UTC)起经过的秒数,不包括leap秒。

  • 我想在excel-vba中编写一个代码,在工作表的一列中填充特定年份的日期。< br >该准则还应考虑闰年。比方说,我已经在单元格B1中输入了年份(如2020年),因此列A应该填充366个日期条目(考虑到闰年)。

  • 我有一本书。包含以下列的csv文件:名称、日期、信息、统计信息、更多信息 我想进口这个。csv文件(使用Python 3.6代码或Pandas) 然后我需要过滤列:NAME,DATE,INFO 这是我有麻烦的地方,我需要采取我的. csv文件的'日期'列,其中列出了一个日期为1/16/2016,并将其分开,这样我就可以只选择月份为我的过滤. csv输出文件。 我最后要读的专栏,比如名字、月份、信息

  • 我正在尝试使用Jena解析Freebase-RDF-2014-01-12-00-00.gz(25 GB)的Freebase-RDF-2014-01-12-00-00.gz。耶拿报告了许多关于不良数据的问题。示例-150.0无效,true和false值无效我通过在decimal和true/false的转储文件中添加双引号来解决这些问题。但是,Jena仍在 有没有办法对这个数据进行预处理,这样我就不用