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