使用 C# 将字符串转换为 SqlServer 的日期时间 [重复]

Posted

技术标签:

【中文标题】使用 C# 将字符串转换为 SqlServer 的日期时间 [重复]【英文标题】:Convert String to Datetime for SqlServer with C# [duplicate] 【发布时间】:2016-08-18 21:24:31 【问题描述】:

您好,我有一个这种类型的字符串:20160104 我应该用 c# 将它转换成SqlServer datetime 的格式,我该怎么办?我试过这个:

DataUltimaVariazione = Convert.ToDateTime("20160104");

但是visual studio给我一个错误

【问题讨论】:

这是从哪里来的?为什么它是 string 而不是 DateTime 值?如果这来自 datedatetime 列,请将其检索为 DateTime,不要将其转换为文本 从文件中读取 您应该使用 SqlCommand 类和参数。或者你可以使用这个:Date.ParseExact(dateString, "yyyyddMM", provider) 没有人问,但究竟哪个部分是月份? @SonerGönül 这看起来像未分隔的日期格式,因此在 SQL Server 中,它明确地转换为yyyyMMdd。混淆这个顺序会显示文件作者的不同寻常的气质。想想汉尼拔莱克特。或者那个在文本框中输入...的人 【参考方案1】:

您可以使用DateTime.ParseExact (https://msdn.microsoft.com/de-de/library/system.datetime.parseexact(v=vs.110).aspx) 将字符串转换为日期时间:

DateTime dateTime = DateTime.ParseExact("20160104", "yyyyMMdd",
CultureInfo.InvariantCulture);

您还可以使用 DateTime.TryParseExact (https://msdn.microsoft.com/de-de/library/h9b85w22(v=vs.110).aspx),它可以让您更好地控制格式错误的日期时间字符串:

DateTime dateTime;
if (DateTime.TryParse("20160104", "yyyyMMdd",
CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))

    Console.WriteLine(dateTime);

【讨论】:

谢谢你用这段代码解决了【参考方案2】:

试试

var myResultDate = DateTime.ParseExact("20160104", 
                                       "yyyyMMdd", 
                                       CultureInfo.InvariantCulture);

【讨论】:

以上是关于使用 C# 将字符串转换为 SqlServer 的日期时间 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

试图从 c# 字符串转换为 SQL 二进制文件

在 C# 中将十六进制值从 SQL Server 转换为日期时间

将 SQL Server 数据库转换为本地 C# 数据库

C# 将 DateTime 转换为 Sql Server 2005 格式

无法将 DateTime 从 SQL Server 转换为 C# DateTime

如何使用 C# 将数据表从 SQL Server 转换为 Excel [重复]