【发布时间】:2013-06-29 09:18:44
【问题描述】:
我正在尝试从 C# 保存当前日期时间格式并将其转换为 SQL Server 日期格式,例如 yyyy-MM-dd HH:mm:ss,以便我可以将其用于我的 UPDATE 查询。
这是我的第一个代码:
DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
日期的输出没问题,但时间总是“12:00:00”,所以我将代码更改为以下内容:
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.TimeOfDay.ToString("HH:mm:ss");
它给了我这个编译错误:
FormatException 未处理
并建议我需要解析。因此,根据我在 StackOverflow 中的研究,我尝试对我的代码执行此操作:
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.Parse.TimeOfDay.ToString("HH:mm:ss");
或
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " +
myDateTime.tryParse.TimeOfDay.ToString("HH:mm:ss");
但它告诉我这是一种对给定上下文无效的方法。我试图寻找解决我的问题的方法,但我已经被困了两个小时。我对 C# 还是有点陌生,你能帮帮我吗?
【问题讨论】:
-
你看过 DateTime.TryParseExact 吗?
-
为什么不使用参数来更新
DateTime或者将其存储为字符串?Date上的ToString也意味着时间总是12:00:00 -
您应该使用带有
DATETIME类型参数的参数化查询,这样您就可以避免在字符串表示之间来回转换!跨度> -
正如其他人所说,使用参数并将所有内容保留为
datetime将是一个好的开始。更好的是,你为什么要传递服务器 current 时间 - 它有一个GETDATE()函数,可以完全在服务器端调用。