CSV文件中有一个输入,格式为dd / mm / yyyy。 我必须将这些日期值传递给存储过程。 我想在将其从c#代码中的数据表批量复制到数据库表之前将其转换为mm / dd / yyyy格式。
我应该在我发送给它的代码或存储过程中执行此操作吗? 请指教。我已尝试过所有可能的组合。
答案 0 :(得分:2)
您可以使用DateTime.ParseExact
,
var parsedDate = DateTime.ParseExact(dateString, "dd/MM/YYYY", CultureInfo.InvariantCulture);
其中dateString
是您要解析的日期的字符串表示形式。
如果您的存储过程需要DateTime,则可以使用parseDate
值。否则,如果它需要您提到的格式的字符串,则可以传递以下值:
parsedDate.ToString("MM/dd/YYYY")
答案 1 :(得分:0)
您应该将您的值解析为C#中的DateTime,并将此日期值传递给SQL客户端或ORM,而不将其转换为字符串
答案 2 :(得分:0)
如果您的SQL字段类型设置为其中一个日期值类型,则根据您的需要很难格式化日期,因为数据库引擎不存储格式化的值,而是存储日期值本身。
确保在更新SQL数据库中的值之前解析DateTime in-code。
string date = "2000-02-02";
DateTime time = DateTime.Parse(date); // Will throw an exception if the date is invalid.
还有TryParse方法可供您使用。它将确保您尝试解析的日期值确实是正确的格式。
string input = "2000-02-02";
DateTime dateTime;
if (DateTime.TryParse(input, out dateTime))
{
Console.WriteLine(dateTime);
}
存储后,您非常欢迎使用给定格式之一为您的DateTime变量选择优先显示格式(请阅读下面的链接以获取可用格式的完整列表)。
https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx