【问题标题】:error Sql query with datetime带有日期时间的错误 Sql 查询
【发布时间】:2013-04-20 07:44:50
【问题描述】:

执行以下操作时出现错误:

DateFrom 的数据类型为 datetime

我的 C# 代码:

string strQuery = "Select * FROM Agenda Where   DateFrom='" + Calendar1.SelectedDate.Date.Date + "' ";
SqlCommand command = new SqlCommand(strQuery, Global.myConn);
da = new SqlDataAdapter(command);
da.Fill(Global.dsAgenda, "Tabel");
ddlActivity.DataSource = Global.dtAgenda;
ddlActivity.DataBind();

日历1类型:

错误:

将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。

【问题讨论】:

  • Calendar1.SelectedDate.Date.Date 是什么格式的?打印出来检查一下。它试图将其转换为日期(以进行比较)并失败。请注明是什么数据库和版本。 SQL Server?
  • @realnumber3012 你是怎么做到的?

标签: asp.net sql sql-server datetime


【解决方案1】:

你应该更喜欢使用parameters:

string strQuery = "SELECT * FROM Agenda WHERE DateFrom = @Date";
SqlCommand command = new SqlCommand(strQuery, Global.myConn);
command.Parameters.Add("@Date", SqlDbType.DateTime).Value = Calendar1.SelectedDate;

【讨论】:

    【解决方案2】:

    使用这个

     Convert(DateTime,Calendar1.SelectedDate.Date.Date,103)
    

    【讨论】:

    • 我使用这个:Convert.ToDateTime(Calendar1.SelectedDate.Date.Date) varchar 数据类型到 datetime 数据类型的转换导致值超出范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多