TL; DR - 是否可以更改Sqoop使用的日期格式?
我使用Sqoop(版本1.4.6)从SQL Server导入数据,并指定datetime列作为我的--check-column。
Sqoop使用yyyy-MM-ddd hh:mm:ss.SSS格式的日期查询数据库。但是,由于SQL服务器配置为使用英国dmy日期格式,因此它违反直觉,将以一年开头的日期解释为将日期放在第二个位置而不是月份(wtf?!)。
E.g SELECT ... WHERE modified< '2017-01-31 00:00:00.000'被解释为选择修改后的数据少于2017年第31个月的第1天,这显然会引发错误。
是否可以更改Sqoop使用的日期格式?
答案 0 :(得分:1)
快速扫描Sqoop文档并未揭示更改日期格式的方法。 Microsoft支持文章here表明您可以通过发布
来避免此问题SET DATEFORMAT 'ymd'
打开连接后立即显示语句,但似乎Sqoop仅支持Oracle的这种操作(oraoop-site-template.xml),而不支持其他JDBC驱动程序。
有一个mssql-jdbc pull request,如果接受,可以将;connectionDateformat=ymd
添加到您的Sqoop连接URL。在此期间,您可能只需更改Sqoop作业的SQL登录的默认语言,即#34;英国英语"到(美国)"英语":