Sql datetime中的大容量插入数据类型不匹配

Sql datetime中的大容量插入数据类型不匹配,sql,sql-server,bulkinsert,Sql,Sql Server,Bulkinsert,在我的批量插入查询中,我在.LST文件中有一列为| 12083121022612 |该列的格式为dbo.ReportMain表中的YYMMDDHHMMSSTT”,我已将该列的数据类型设置为日期时间 我这样说是错误的 第1行第13列(DateAndTime)的大容量加载数据转换错误(指定代码页的类型不匹配或无效字符) 批量插入代码:- BULK INSERT dbo.ReportMain FROM 'C:\AGS_WINCORE_120901.LST' WITH ( FIELDTERMINATOR

在我的批量插入查询中,我在.LST文件中有一列为| 12083121022612 |该列的格式为
dbo.ReportMain
表中的
YYMMDDHHMMSSTT”
,我已将该列的数据类型设置为
日期时间
我这样说是错误的

第1行第13列(DateAndTime)的大容量加载数据转换错误(指定代码页的类型不匹配或无效字符)

批量插入代码:-

BULK
INSERT dbo.ReportMain
FROM 'C:\AGS_WINCORE_120901.LST'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '0x0A'
)
GO

嗯,
12083121022612
不是有效日期:

select cast('12083121022612' as datetime)
-->
Conversion failed when converting date and/or time from character string.
您可以批量加载到使用
varchar
字段的暂存表中。您可以将
varchar
字段转换为通用
yyyy-MM-ddTHH:MM:ss:tt
日期格式。下面是一个示例查询,可以将临时表中的行插入到主表中:

insert  ReportMain
        (col1)
select  cast('20' + substring(col1,1,2) + '-' + substring(col1,3,2) + '-' + 
            substring(col1,5,2) + 'T' + substring(col1, 7,2) + ':' + 
            substring(col1, 9,2) + ':' + substring(col1, 11,2) + 
            '.' + substring(col1, 13,2) as datetime)
from    ReportMain_Staging