sql >> Databasteknik >  >> RDS >> Mysql

Att anropa DATE_FORMAT() i MySQL från Django misslyckas

Min gissning är att problemet är med procenttecknet (% ) i frågetexten. (Är det inte en bind variabel platshållare i Django?) t.ex. om vi skulle använda en bindningsvariabel, skulle det inte se ut ungefär så här?

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

Jag tror att Django kanske skannar din SQL-text och stöter på %w och förväntar sig att det är en bindningsvariabel. Antingen det, eller så kör den en sprintf stilfunktion och stöter på %w och förväntar sig att ersätta den platshållaren med ett argumentvärde.

(Jag har inte testat, så det här är bara en idé, bara en gissning.)

Som en gissning till en lösning, kanske du dubblar procenttecknen, samma sak som vi får % literaler genom en sprintf:

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

Om det inte fungerar, så kanske det är ett omvänt snedstreck, samma som vi undslipper tecken i ett reguljärt uttryck:

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

(Eller så kan du behöva dubbla omvända snedstreck. Dessa är bara gissningar baserade på konventioner som används av annan programvara.)



  1. mysql vänster gå med inte returnera alla vänster tabellrad

  2. Vad är en "flerdelad identifierare" och varför kan den inte bindas?

  3. Codeigniter välj-från- var

  4. fulltextfråga i joomla