Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам .format() низ в MySQL оператор?

Използване на подготвени изрази (безопасен начин):

qry = """
    SELECT *
    FROM db
    WHERE run_start_date BETWEEN '%s 16:00:00' AND '%s 16:00:00'
""" # 

today = DT.date.today()
week_ago = today - DT.timedelta(days=7)
today = str(today.strftime('%Y-%m-%d'))  # Convert to string
week_ago = str(week_ago.strftime('%Y-%m-%d'))  # Convert to string

cursor.execute(qry, [today, week_ago])

Използване на .format(), което ви излага на риск от sql инжекции (ако подадете въвеждането на потребителя на .format() напр.)

qry = """
    SELECT *
    FROM db
    WHERE run_start_date BETWEEN '{today} 16:00:00' AND '{week_ago} 16:00:00'
""" # Use named placeholders, nicer to read, prevents you having to repeat variables multiple time when calling .format()

today = DT.date.today()
week_ago = today - DT.timedelta(days=7)
today = str(today.strftime('%Y-%m-%d'))  # Convert to string
week_ago = str(week_ago.strftime('%Y-%m-%d'))  # Convert to string

qry = qry.format(today=today, week_ago=week_ago)
cursor.execute(qry)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA много към много връзка не се вмъква в генерираната таблица

  2. Как да създадете ENUM в SQLAlchemy?

  3. MySQL премахва всички индекси от таблицата

  4. Получавайте WP публикации на базата на множество двойки мета ключ/стойност, използвайки IN

  5. Wordpress SQL:вземете категория на публикациите и тагове