gpt4 book ai didi

c# - mysql日期时间格式使用c#

转载 作者:行者123 更新时间:2023-11-29 05:30:47 24 4
gpt4 key购买 nike

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

我的 C# 代码:

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-yyy") + "' as datetime) and cast('" + dTime2.Value.ToString("dd-MMM-yyy") + "'as datetime)

我的Mysql表记录:

enter image description here

最佳答案

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

出于以下三个原因,您应该避免直接在 SQL 中包含值:

  • 您最终会遇到麻烦的字符串转换,可能会使用不适当的格式等。这就是问题所在。
  • 您正在邀请 SQL injection attacks
  • 您正在混合代码和数据,这使得阅读代码和检查数据变得更加困难

你想要这样的东西:

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
}

如果 Des.despdate 不是 合适的数据类型,您应该更改它...

关于c# - mysql日期时间格式使用c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14952518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com