【发布时间】:2016-04-07 13:25:34
【问题描述】:
我正在尝试将我的字符串转换为 DateTime 并将其写入 SQL 表中的 datetime 字段。
string dateTimeString = line.Substring(5, 14);
var date = DateTime.ParseExact(dateTimeString, "dd/MM/yyyy", null).ToString("MM/dd/yyyy");
SqlCommand command = new SqlCommand("INSERT INTO dbo.ODCZYTY (numer_karty,data, rodzaj,obszar,kierunek) VALUES(@numer_karty,@data, @rodzaj, @obszar, @kierunek)", conn);
command.Parameters.AddWithValue("@numer_karty", line.Substring(0, 5));
command.Parameters.AddWithValue("@data", date);
command.Parameters.AddWithValue("@rodzaj", line.Substring(19, 2));
command.Parameters.AddWithValue("@obszar", line[line.Length - 2]);
command.Parameters.AddWithValue("@kierunek", line[line.Length - 1]);
line.Substring(5, 14) = 20160127122843 但我明白了:
从字符串转换日期和/或时间时转换失败
我做错了什么?
【问题讨论】:
-
你的字段“data”的数据类型是什么?
-
dateTimeString 的值是多少?
-
哪个 RDBMS(产品和版本)?您应该从不依赖文化特定的日期文字...使用 ISO 8601、ODBC 或通用格式 Read this for examples
-
line.Substring(5, 14) = 20160127122843
-
如果你对时间不感兴趣,何不把
(5,14)改成(5,8)呢? SQL Server 至少会隐式地强制转换...