Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 使用BCP将日期时间数据导入SQL Server仓库_Datetime_Datetime Format_Bcp_Azure Sql Data Warehouse - Fatal编程技术网

Datetime 使用BCP将日期时间数据导入SQL Server仓库

Datetime 使用BCP将日期时间数据导入SQL Server仓库,datetime,datetime-format,bcp,azure-sql-data-warehouse,Datetime,Datetime Format,Bcp,Azure Sql Data Warehouse,我每天都会收到一个如下所示的文本文件: 128CAFEE-38B0-5A6A-8C21-E2BDA1E57FE4 353386068937487 10320 2019-06-20T23:56:14Z 128CAFEE-38B0-5A6A-8C21-E2BDA1E57FE4 353386068937487 10320 2019-06-20T23:56:14Z 128CAFEE-38B0-5A6A-8C21-E2BDA1E57FE4 353386068937487 1032

我每天都会收到一个如下所示的文本文件:

128CAFEE-38B0-5A6A-8C21-E2BDA1E57FE4    353386068937487 10320   2019-06-20T23:56:14Z
128CAFEE-38B0-5A6A-8C21-E2BDA1E57FE4    353386068937487 10320   2019-06-20T23:56:14Z
128CAFEE-38B0-5A6A-8C21-E2BDA1E57FE4    353386068937487 10320   2019-06-20T23:56:14Z
我正在尝试使用BCP将其导入Azure SQL Server仓库

要加载到的表的定义如下所示:

CREATE TABLE
 mytable
(var1 VARCHAR(36) NOT NULL, 
 var2 BIGINT NOT NULL, 
 var3 INTEGER NOT NULL, 
 var4 DATETIME2 NOT NULL)
我使用的fmt文件如下所示:

13.0
4
1       SQLCHAR             0       36      "\t"   1     var1                                         SQL_Latin1_General_CP1_CI_AS
2       SQLBIT              0       1       "\t"   2     var2                                         ""
3       SQLINT              0       4       "\t"   3     var3                                         ""
4       SQLDATETIME         0       8       "\n"   4     var4                                         ""
我对此的datetime元素有问题-出现以下错误:

Error = [Microsoft][ODBC Driver 13 for SQL Server]Invalid date format
是否有办法定义日期时间信息是什么,即我能否给BCP一个YYYY-mm-DD\THH:mm:SS样式的字符串,以便它能够正确解释我的日期


请限制回答使用BCP。

您将无法使用BCP将该日期格式直接导入到
datetime2
列中(据我所知,很高兴更正)。使用暂存表,导入到
char(20)
列中,然后使用
CAST
转换

SELECT CAST( yourCharDateColumn AS DATETIME2 ) AS x
FROM yourStagingTable
使用这种方法,您可能会忘记格式化文件,只需将-
c
开关与bcp一起使用即可。演员阵容在我的测试中很成功

我注意到格式文件中的第二列标记为
SQLBIT
,而它应该是
SQLBIGINT


关于bcp的使用,我有兴趣了解您为什么选择使用这个传统的命令工具,其中Polybase是将数据快速导入Azure SQL数据仓库的推荐方法
CREATE EXTERNAL FILE FORMAT
甚至有一个
DATE\u FORMAT
开关,虽然我没有尝试过,但可以使用这种格式。如果您必须使用bcp,并且源数据来自另一台SQL Server,那么使用本机(
-n
)打开导出可以很好地工作,并且还可以消除对格式文件的需要。交替考虑数据工厂,它应该能够处理您的日期列所需的转换。< /P>已执行CAST选项,<代码> SqLBIT < /Cord>是我的问题中的一个错误。BCP是微软自己推荐的,这可能与我们在这里的具体设置有关,但看看polybase,我认为这可能是更好的选择。