无法在 csvkit 的 csvsql 上使用 mysql

问题描述 投票:0回答:1

这是我的输入:

csvsql -d ";"  --query "SELECT ID_PROPOSTA FROM acomp_obras_contratos_medicoes_modulo_empresas WHERE MONTH(DATA_INICIO_MEDICAO_OBJETO_ACOMPANHAMENTO_OBRA) LIKE 10 AND YEAR(DATA_INICIO_MEDICAO_OBJETO_ACOMPANHAMENTO_OBRA) LIKE 2010" acomp_obras_contratos_medicoes_modulo_empresas.csv 

这是错误:

OperationalError: (sqlite3.OperationalError) no such function: MONTH

显然,csvsql 使用 sqlite 而不是 mysql,但由于此错误,我无法强制 csvsql 使用带有“--dialect mysql”标志的 mysql:

csvsql: error: The --dialect option is only valid when neither --db nor --query are specified.
sql mysql sqlite
1个回答
0
投票

使用 csvkit 1.5.0 进行测试:

% cat acomp_obras_contratos_medicoes_modulo_empresas.csv 
ID_PROPOSTA;DATA_INICIO_MEDICAO_OBJETO_ACOMPANHAMENTO_OBRA
123;2010-10-01
456;2010-11-01
789;2012-10-01

% csvsql -d ';' --query "select id_proposta from acomp_obras_contratos_medicoes_modulo_empresas 
  where strftime('%Y%m', data_inicio_medicao_objeto_acompanhamento_obra) 
  = '201010'" \
  acomp_obras_contratos_medicoes_modulo_empresas.csv
ID_PROPOSTA
123.0
© www.soinside.com 2019 - 2024. All rights reserved.