在我的批量插入查询中,我将.LST文件中的一列作为| 12083121022612 |此列的格式为"YYMMDDHHMMSSTT"
在dbo.ReportMain
表中,我已将此数据类型设置为datetime
它给了我错误的说法
第1行第13列(DateAndTime)的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
批量插入代码: -
BULK
INSERT dbo.ReportMain
FROM 'C:\AGS_WINCORE_120901.LST'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '0x0A'
)
GO
答案 0 :(得分:1)
好吧,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