我有一个从 CSV 导入的数据表,如下所示:
FirstTimeTaken LatestTimeTaken Market Outcome Odds NumberOfBets VolumeMatched InPlay
03/08/2013 15:30:14 03/08/2013 15:32:28 Over/Under 3.5 Goals Over 3.5 Goals 5 10 118 1
03/08/2013 14:26:40 03/08/2013 14:29:43 Correct Score 0 - 0 7 12 279 1
03/08/2013 15:15:34 03/08/2013 15:27:39 Match Odds Barnsley 110 7 9 1
28/07/2013 16:57:26 29/07/2013 21:35:55 Match Odds Barnsley 3 9 35 0
我必须以 varchar 格式导入前 2 列,因为我在尝试导入为日期时间时遇到错误。现在我有表中的数据,我需要将列格式从 Varchar 转换为 Datetime。我尝试过:
ALTER TABLE #CSVTest_Data
ALTER COLUMN FirstTimeTaken DATETIME
ALTER TABLE #CSVTest_Data
ALTER COLUMN LatestTimeTaken DATETIME
这会导致错误:“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围”。 我知道删除最后一行数据可以解决问题,所以我怀疑系统认为日期格式是 MM/DD/YYYY,而实际上是 DD/MM/YYYY。 以下查询工作正常:
SELECT convert(VARCHAR(50),FirstTimeTaken,105) from #CSVTest_Data
SELECT convert(VARCHAR(50),LatestTimeTaken,105) from #CSVTest_Data
但这不会将列格式转换为日期时间。我希望得到有关如何执行此操作的帮助。谢谢。
最佳答案
尝试使用SET DATEFORMAT
。
SET DATEFORMAT dmy
关于sql - 将 Varchar 列转换为日期时间格式 - SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22512480/