将日期时间字符串以dd / mm / yyyy转换为日期时间格式mm / dd / yyyy

时间:2017-04-20 06:10:06

标签: c# sql-server csv datetime date-format

CSV文件中有一个输入,格式为dd / mm / yyyy。 我必须将这些日期值传递给存储过程。 我想在将其从c#代码中的数据表批量复制到数据库表之前将其转换为mm / dd / yyyy格式。

我应该在我发送给它的代码或存储过程中执行此操作吗? 请指教。我已尝试过所有可能的组合。

3 个答案:

答案 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