在从SQL Server增量导入中更改Sqoop的日期格式

在从SQL Server增量导入中更改Sqoop的日期格式,sql,datetime,hdfs,sqoop,mssql-jdbc,Sql,Datetime,Hdfs,Sqoop,Mssql Jdbc,TL;DR-是否可以更改Sqoop使用的日期格式 我使用Sqoop 1.4.6版从SQL Server导入数据,并指定datetime列作为my-check列 Sqoop正在使用yyyy MM ddd hh:MM:ss.SSS格式的日期查询数据库。但是,由于SQL server配置为使用英国dmy日期格式,因此它会反直觉地将以年开始的日期解释为日期位于第二个位置,而不是月份wtf 例如选择。。。其中修改

TL;DR-是否可以更改Sqoop使用的日期格式

我使用Sqoop 1.4.6版从SQL Server导入数据,并指定datetime列作为my-check列

Sqoop正在使用yyyy MM ddd hh:MM:ss.SSS格式的日期查询数据库。但是,由于SQL server配置为使用英国dmy日期格式,因此它会反直觉地将以年开始的日期解释为日期位于第二个位置,而不是月份wtf

例如选择。。。其中修改<'2017-01-31 00:00:00.000'被解释为选择修改时间小于2017年第31个月第1天的数据,这显然会引发错误


是否可以更改Sqoop使用的日期格式?

快速扫描Sqoop文档并没有发现更改日期格式的方法。Microsoft支持文章建议您可以通过发布

设置日期格式“ymd” 语句,但似乎Sqoop仅支持Oracle oraoop-site-template.xml的此类操作,而不支持其他JDBC驱动程序

有一个mssql jdbc,如果被接受,将允许您添加;connectionDateformat=ymd到您的Sqoop连接URL。同时,您可能只需要将Sqoop作业的SQL登录的默认语言从英国英语更改为美国英语: