Sql datetime中的大容量插入数据类型不匹配
在我的批量插入查询中,我在.LST文件中有一列为| 12083121022612 |该列的格式为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
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