You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL数据库迁移BCP导入报日期格式无效错误的解决求助

解决BCP导入Azure SQL时的日期格式错误问题

核心问题分析

你的BCP命令存在参数解析错误,同时日期格式的区域兼容性导致解析失败:

  • 原命令中-P 12345678ABC-q将密码与-q参数连在一起,导致密码被错误识别,参数解析异常。
  • BCP默认依赖客户端系统区域设置解析日期,自定义格式可能因区域不匹配无法识别。

解决步骤

1. 修正BCP命令参数错误

将密码与-q参数拆分,确保每个参数独立:

bcp contract_management in Query3.csv -S dbaas-share-gs-sql.database.windows.net -d dbaas-tenant-gs-sqldb-tsdvdev01 -U owner_tsdvdev01 -P 12345678ABC -q -c -t ","

2. 修改导出SQL的日期格式为ISO 8601标准

使用SQL Server通用的ISO 8601日期格式(yyyy-MM-ddTHH:mm:ss.ffff),该格式不受区域设置影响,BCP可直接识别:

select 
    contract_id, 
    contractor_name, 
    plan_id, 
    quantity, 
    format(exec_date, 'yyyy-MM-ddTHH:mm:ss.ffff') as exec_date, 
    initial_plan, 
    contract_status, 
    backup_disksize, 
    format(register_date, 'yyyy-MM-ddTHH:mm:ss.ffff') as register_date, 
    format(update_date, 'yyyy-MM-ddTHH:mm:ss.ffff') as update_date 
from [dbo].[contract_management]

3. 可选:使用格式化文件精确控制字段解析

如果上述方法仍未解决,可生成格式化文件定义字段规则:

  1. 生成格式化文件:
bcp dbaas-tenant-gs-sqldb-tsdvdev01.dbo.contract_management format nul -c -f contract_management.fmt -S dbaas-share-gs-sql.database.windows.net -U owner_tsdvdev01 -P 12345678ABC -q -t ","
  1. 打开contract_management.fmt文件,将日期字段的格式修改为yyyy-MM-ddTHH:mm:ss.ffff
  2. 使用格式化文件导入:
bcp contract_management in Query3.csv -S dbaas-share-gs-sql.database.windows.net -d dbaas-tenant-gs-sqldb-tsdvdev01 -U owner_tsdvdev01 -P 12345678ABC -q -f contract_management.fmt -t ","

内容的提问来源于stack exchange,提问作者Nghi Hoàng Đức

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 04:26:35