使用 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 值?如果这来自date
或 datetime
列,请将其检索为 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 Server 转换为日期时间
C# 将 DateTime 转换为 Sql Server 2005 格式