无法识别的SQL日期时间值

本文关键字:日期 时间 SQL 识别 | 更新日期: 2023-09-27 18:28:54

我的web应用程序中的一个函数调用自定义的API(用C#编写),其中存储当前日期&在API中,只需使用DateTime.Now方法分配一个值。

并且上述日期&时间值以以下方式检索:

DateTime? dt = !string.IsNullOrEmpty((dr["RecordDate"]).ToString()) ? 
    Convert.ToDateTime(dr["RecordDate"].ToString()) : (DateTime?) null;

当我将上面代码中dt的值分配给JavaScript变量时,我最终得到一个值/Date(1415049596057)/。我看过date&时间值以前有不同的格式,但我想我从未见过这样的情况。我想我没有正确处理转换过程,但我真的对此感到困惑。

更新:

DateTime变量的值分配如下所示:

using (var con = new SqlConnection(Service.GetSiteSetting(_httpContextAccessor.Current(), customdb))
{
    con.Open();
    var cm = new SqlCommand { CommandType = CommandType.StoredProcedure, CommandText = "SaveRecord", Connection = con };
    ...  // not showing other parameters
    cm.Parameter.Add(new SqlParameter("@RecordDate", SqlDbType.DateTime) { Value = DateTime.Now });
    ...
    cm.ExecuteNonQuery();
}

无法识别的SQL日期时间值

日期时间值的转换导致了您的问题。查看这篇关于将SQL日期时间与JavaScript日期进行比较的相关文章。

编辑:"的值;1415049596057";无法转换为有效日期。datejs.com上有一个快速检查功能,您可以使用它来验证字符串值。

因此,经过几个小时的搜索,我终于在这里找到了答案。至于为什么我会得到那种特定格式的DateTime,我仍然不能100%确定。但是,我注意到有些人将这种奇怪的格式称为"JSON日期",所以也许这就是它的含义,但掌握得更好的人可以确认。

无论如何,对于那些可能有同样问题的人,我所要做的就是在我的Javascript中添加一行代码,如下所示:

// 'dateVal' holds the datetime value I retrieved from the database. Also, since the value
// is in '/Date(1415049596057)/' format, I need to extract the numeric part of the value.
var date = new Date(parseInt(dateVal.substr(6)));

我在变量date中的值现在是Mon Nov 03 2014 16:19:56 GMT-0500 (Eastern Standard Time)。正如您所看到的,它相当冗长,但将该值格式化为您想要的任何格式都应该非常简单。