虽然它看起来像这个问题已经被问了一堆的时候,我似乎无法找到答案,这是专门针对我的问题:
我有一个从XML文件由C#XML解析器读取变量。 这是一个字符串,格式为"yyyy-MM-dd"
。 我想读这个变量使用到我们的数据库SQL
,但它需要在适当的日期时间格式,以便为我做到这一点。 不幸的是,我找不到任何日期时间格式"yyyy-MM-dd"
。 我缺少的东西吗?
我宁愿能够将变量转换为datetime之前,我不得不打开我的SQL
连接,如果可能的话。
虽然它看起来像这个问题已经被问了一堆的时候,我似乎无法找到答案,这是专门针对我的问题:
我有一个从XML文件由C#XML解析器读取变量。 这是一个字符串,格式为"yyyy-MM-dd"
。 我想读这个变量使用到我们的数据库SQL
,但它需要在适当的日期时间格式,以便为我做到这一点。 不幸的是,我找不到任何日期时间格式"yyyy-MM-dd"
。 我缺少的东西吗?
我宁愿能够将变量转换为datetime之前,我不得不打开我的SQL
连接,如果可能的话。
我宁愿能够将变量转换为datetime之前,我不得不打开我的SQL连接,如果可能的话。
DateTime result = DateTime.ParseExact("2012-04-05", "yyyy-MM-dd", CultureInfo.InvariantCulture);
也许ParseExact功能可以帮助您。
DateTime dResult = DateTime.ParseExact("2012-07-18", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
如果你正在使用LINQ to XML,你可以简单地把元素或属性,以DateTime
:
DateTime date = (DateTime) element;
然后,你可以使用参数化的SQL插入到你的数据库。 我认为亚伦的建议:只要有可能,让您的数据在其最自然的形式,这在香草.NET是一个DateTime
。 时间越长,你可以将数据保存在一个有意义的表示,更好IMO。
如果你不使用LINQ to XML,然后从smink和里埃拉的解决方案都很好 - 但我强烈建议您使用LINQ到XML,如果你所能:)
在SQL Server中,你可以使用查询
SELECT CONVERT(VARCHAR(10),GETDATE(),120)AS [YYYY-MM-DD]
如果你不知道它会工作,你可以使用“TryParseExact”。 如果它的工作原理“成功”将是真实的。 这样,你是不是冒着解析异常。
DateTime timestamp;
bool success = DateTime.TryParseExact("2015-12-25", "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out timestamp);