﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32418	Django f expressions seems to not work with MySQL	Hoshi Yamazaki	nobody	"My code:
```python
duration_expression = ExpressionWrapper(
    datetime.timedelta(minutes=1) * F('duration'),
    output_field=DurationField())
booking_end = ExpressionWrapper(
    F('booking_dt') + duration_expression,
    output_field=DateTimeField())
booking_qs.annotate(
    booking_end=booking_end).get(
    Q(Q(booking_dt__lte=first_interval),
      Q(booking_dt__gte=next_interval)) |
    Q(Q(booking_end__lte=first_interval),
      Q(booking_end__gte=next_interval)))duration_expression = ExpressionWrapper(
    datetime.timedelta(minutes=1) * F('duration'),
    output_field=DurationField())
booking_end = ExpressionWrapper(
    F('booking_dt') + duration_expression,
    output_field=DateTimeField())
booking_qs.annotate(
    booking_end=booking_end).get(
    Q(Q(booking_dt__lte=first_interval),
      Q(booking_dt__gte=next_interval)) |
    Q(Q(booking_end__lte=first_interval),
      Q(booking_end__gte=next_interval)))
```

Error I get:
```
(1064, ""You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* `carwashes_carwashbooking`.`duration`) MICROSECOND) AS `booking_end` FROM `car' at line 1"")
```

SQL query:
```sql
('SELECT `carwashes_carwashbooking`.`id`, '
 '`carwashes_carwashbooking`.`carwash_id`, '
 '`carwashes_carwashbooking`.`created_dt`, '
 '`carwashes_carwashbooking`.`booking_dt`, '
 '`carwashes_carwashbooking`.`duration`, `carwashes_carwashbooking`.`car_id`, '
 '`carwashes_carwashbooking`.`car_name`, `carwashes_carwashbooking`.`plate`, '
 '`carwashes_carwashbooking`.`status`, `carwashes_carwashbooking`.`driver_id`, '
 '`carwashes_carwashbooking`.`phone_number`, '
 '`carwashes_carwashbooking`.`service_id`, `carwashes_carwashbooking`.`notes`, '
 '(`carwashes_carwashbooking`.`booking_dt` + INTERVAL (INTERVAL 60000000 '
 'MICROSECOND * `carwashes_carwashbooking`.`duration`) MICROSECOND) AS '
 '`booking_end` FROM `carwashes_carwashbooking` WHERE '
 '(`carwashes_carwashbooking`.`carwash_id` = %s AND '
 '`carwashes_carwashbooking`.`driver_id` = %s AND '
 '((`carwashes_carwashbooking`.`booking_dt` <= %s AND '
 '`carwashes_carwashbooking`.`booking_dt` >= %s) OR '
 '((`carwashes_carwashbooking`.`booking_dt` + INTERVAL (INTERVAL 60000000 '
 'MICROSECOND * `carwashes_carwashbooking`.`duration`) MICROSECOND) <= %s AND '
 '(`carwashes_carwashbooking`.`booking_dt` + INTERVAL (INTERVAL 60000000 '
 'MICROSECOND * `carwashes_carwashbooking`.`duration`) MICROSECOND) >= %s))) '
 'LIMIT 21')
```

Stackoverflow issue: https://stackoverflow.com/questions/66044255/django-returns-sql-syntax-error-when-using-expressionwrapper-and-f-expressions"	Bug	new	Uncategorized	3.1	Normal				Unreviewed	0	0	0	0	0	0
