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

时间:2014-12-09 15:00:39

标签: c# asp.net sql-server database

我的代码后面有一个SQL命令:

cmd = new SqlCommand("insert into MappingInfo(ActivationDate) values (@ActivationDate)", con);

我想根据某些条件将“当前时间戳”或“空”分配给@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."}

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

信息很明确。

字段ActivationDate是一个DateTime字段,但是您将字符串作为值传递:“CURRENT_TIMESTAMP”

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

答案 2 :(得分:0)

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

DateTime date = DateTime.Parse("01/01/1900");