C# 使用c语言的mysql日期时间格式#

C# 使用c语言的mysql日期时间格式#,c#,mysql,datetime,C#,Mysql,Datetime,我需要使用C#代码在mysql记录中搜索一些关于日期值的数据。我在c#中使用以下代码,但无法找到记录。请帮帮我 我的C#代码: 我的Mysql表记录: 如果您试图在SQL查询中直接包含一个值作为开始,那就错了。使用参数化SQL并将值指定为DateTime,并且假设您的数据库表也使用了日期/日期时间字段(应该是这样),您应该可以 应避免在SQL中直接包含值,原因有三: 您最终会遇到麻烦的字符串转换,可能会使用不合适的格式等。这就是这里的问题 你在邀请我 您将代码和数据混合在一起,这使得读取代码和

我需要使用C#代码在mysql记录中搜索一些关于日期值的数据。我在c#中使用以下代码,但无法找到记录。请帮帮我

我的C#代码:

我的Mysql表记录:


如果您试图在SQL查询中直接包含一个值作为开始,那就错了。使用参数化SQL并将值指定为
DateTime
,并且假设您的数据库表也使用了日期/日期时间字段(应该是这样),您应该可以

应避免在SQL中直接包含值,原因有三:

  • 您最终会遇到麻烦的字符串转换,可能会使用不合适的格式等。这就是这里的问题
  • 你在邀请我
  • 您将代码和数据混合在一起,这使得读取代码和检查数据变得更加困难
你想要的是:

string sql = @"Select distinct v.* from Ven v 
               inner join Des d on v.venid=d.venid 
               and cast(d.despdate as datetime) between @start and @end";
using (MySqlCommand command = new MySqlCommand(connection, sql))
{
    command.Parameters.AddWithValue("@start", startDateTime);
    command.Parameters.AddWithValue("@end", endDateTime);
    // Execute the command here
}

如果
desp.despdate
还不是一个合适的数据类型,您应该更改…

使用
STR\u TO\u DATE
将列
d.despdate
转换为
DATE

SELECT  ...
FROM    ...
WHERE   STR_TO_DATE(d.despdate, '%d-%b-%Y') BETWEEN '2013-01-15' AND '2013-01-30'
为了获得更好的性能,请使用
MySQLCommand
object参数化查询。前,

string connStr = "connection string here";
string query = @"SELECT ... 
                FROM... 
                WHERE STR_TO_DATE(d.despdate, '%d-%b-%Y') BETWEEN @date1 AND @date2"
using(MySqlConnection _conn = new MySqlConnection(connStr))
{
    using (MySqlCommand comm = new MySqlCommand())
    {
        comm.Connection = conn;
        comm.CommandText = query;
        comm.Parameters.AddWithValue("@date1", dTime1.Value);
        comm.Parameters.AddWithValue("@date2", dTime2.Value);
        try
        {
            conn.Open();
            comm.ExecuteNonQuery();
        }
        catch(MySqlException e)
        {
            // do something with
            // e.ToString()
        }
    }
}
应该是yyyy

 Select distinct v.* from Ven v inner join Des d on v.venid=d.venid and cast( d.despdate as datetime) between  cast('" + dTime1.Value.ToString("dd-MMM-yyyy") + "' as datetime) and cast('" + dTime2.Value.ToString("dd-MMM-yyyy") + "'as datetime)

看起来rdbms是mssql..@IswantoSan ya我正在将ms sql代码转换为我的sql。不知道如何将我的sql中的格式查询写入此查询
 Select distinct v.* from Ven v inner join Des d on v.venid=d.venid and cast( d.despdate as datetime) between  cast('" + dTime1.Value.ToString("dd-MMM-yyyy") + "' as datetime) and cast('" + dTime2.Value.ToString("dd-MMM-yyyy") + "'as datetime)