将日期字符串转换为SQL可读日期格式
var dateString = "Oct 21 2014 1:00 AM";
DateTime result;
DateTime.TryParse(dateString, out result);
var sqlDate = result.ToString("yyyy-MM-dd HH:mm:ss");
请参阅答案这里。
Converting a String to DateTime
DateTime.ParseExact可以为你工作,以日期时间转换,然后你可以使用ToString(<format>)
与格式转换所需的字符串。
'DateTime.ParseExact'只有当你事先知道确切的格式时才有用,如果你不这样做 - 它会失败。另外,假设提供的字符串是数据总是被接收的方式,即使'TryParse()'也是多余的,他应该使用'Parse()'insead。 'ParseExact'只在格式不常见或文化变体不同时有用,不会用任何其他方法解析。在使用'.ParseExact()'之前,总是使用'.Parse()'或'.TryParse()'。 – Gabe
我认为,如果您使用ADO.NET与您的SQL Server进行通信,则不应使用格式化的日期字符串作为查询参数。您应该改用DateTime
对象。您可以通过使用该DateTime.Parse
或DateTime.TryParse
方法从字符串得到它:
DateTime date = DateTime.Parse("Oct 21 2014 1:00 AM"); // Use this as your query parameter.
但是,如果你决定去与使用的格式化字符串,最简单的方法是首先将其解析到如上图所示,然后您可以使用ToString
,并使用格式字符串重载,以根据需要格式化日期。
为了让您的例子格式:
DateTime date = DateTime.Parse("Oct 21 2014 1:00 AM");
string formatted = DateTime.ToString("yyyy-MM-dd hh:mm:ss"); // 2014-10-21 01:00:00
鉴于提供的字符串并假设它不会更改,这是正确的方法。 – Gabe
是'2014年10月21日1:00 AM'字符串或日期时间? –
你如何使用数据库? – Valentin
@TimFreese它是一个字符串 – LearningJrDev