C# 无法使用C在数据库中插入当前时间戳

C# 无法使用C在数据库中插入当前时间戳,c#,asp.net,sql-server,database,C#,Asp.net,Sql Server,Database,我的代码中有一个SQL命令,如下所示: cmd = new SqlCommand("insert into MappingInfo(ActivationDate) values (@ActivationDate)", con); 我想根据某些条件将“当前时间戳”或“null”分配给@ActivationDate,如下所示: int ActivateState; if (rdoActivateMappingYes.Checked) { ActivateState = 1; cmd

我的代码中有一个SQL命令,如下所示:

cmd = new SqlCommand("insert into MappingInfo(ActivationDate) values (@ActivationDate)", con);
我想根据某些条件将“当前时间戳”或“null”分配给@ActivationDate,如下所示:

int ActivateState;
if (rdoActivateMappingYes.Checked)
{
    ActivateState = 1;
    cmd.Parameters.AddWithValue("@ActivationDate", "CURRENT_TIMESTAMP");
}
else
{
    ActivateState = 0;
    cmd.Parameters.AddWithValue("@ActivationDate", DBNull.Value);
}
但是,在运行web应用程序时,我遇到以下错误:

{System.Data.SqlClient.SqlException} : {"Conversion failed when converting date and/or time from character string."}
信息是明确的

字段ActivationDate是一个DateTime字段,但您正在传递一个字符串作为值:CURRENT\u TIMESTAMP


您可能需要传递一个DateTime值,如DateTime.Now或任何其他适合应用程序/数据库逻辑的DateTime。

您可以使用DateTime.parse方法检查字符串是否为有效的日期格式

int ActivateState;
if (rdoActivateMappingYes.Checked)
{
    ActivateState = 1;
    cmd.Parameters.AddWithValue("@ActivationDate", DateTime.Now);
}
else
{
    ActivateState = 0;
    cmd.Parameters.AddWithValue("@ActivationDate", DBNull.Value);
}
DateTime date = DateTime.Parse("01/01/1900");

当前时间戳是一个字符串,而不是日期时间或其他内容。使用本地时间作为日期时间如何?现在还是UTC时间作为日期时间更好?UtcNow?@SonerGönül我理解!你能告诉我如何输入当前的时间戳吗?什么是正确的方法?@SonerGönül谢谢!成功了!如果您为参数定义了数据类型,而不是强迫系统进行计算,您将得到更好的服务。我明白了!你能告诉我如何输入当前的时间戳吗?正确的方法是什么?@AniruddhaPondhe,使用DateTime.Now或rodrigoqg提到的DateTime.UtcNow