sql >> Databáze >  >> RDS >> Mysql

Volání DATE_FORMAT() v MySQL z Django se nezdařilo

Můj odhad je, že problém je se znakem procenta (% ) v textu dotazu. (Není to zástupný symbol bind variable v Django?) např. kdybychom použili proměnnou vazby, nevypadalo by to nějak takto?

SELECT 'foo' FROM DUAL WHERE 'a' = %(varname)s ;

Myslím, že možná Django skenuje váš text SQL a naráží na %w a očekává se, že to bude proměnná vazby. Buď to, nebo běží sprintf funkce stylu a setkání s %w a očekáváte nahrazení tohoto zástupného symbolu hodnotou argumentu.

(Netestoval jsem; takže je to jen nápad, jen odhad.)

Jako tip na řešení možná zdvojnásobíte znaky procenta, stejně jako my získáme % literálů prostřednictvím sprintf:

  query("SELECT ... ,'%%w') ...");

Pokud to nefunguje, pak je to možná znak zpětného lomítka, stejně jako znaky v regulárním výrazu:

  query("SELECT ... ,'\%w') ...");

(Nebo možná budete muset zdvojnásobit zpětná lomítka. Jsou to pouze odhady založené na konvencích používaných jiným softwarem.)



  1. Zablokování v Oracle

  2. Hibernate:zmatek při samostatném připojení?

  3. mySQL Group podle jména člena

  4. mysql připojit stejnou tabulku jinou sadu výsledků