前提・実現したいこと
python3,Django,PostqleSQLを利用してWEBシステムを作っています。
データベースより、日付を指定して対象のデータを取得したいのですが、うまくいきません。
SQL文を使用した際に以下のエラーメッセージが出て、情報が取得できません。
WHERE句で指定している日付の形と、データベース内の日付の形は同じと認識しているのですが、何か特別な事をしないといけないのでしょうか?
発生している問題・エラーメッセージ
'datetime.date' object does not support indexing
該当のソースコード
models.py
python
1 2class Weather(models.Model): 3 name = models.CharField('name', max_length=20) 4 date = models.DateField('date') 5 block_no = models.PositiveIntegerField('block_no') 6 temp = models.FloatField('temp') 7
views.py
python
1 2 print(start_date) #2019-07-08 3 4 connection = psycopg2.connect(conText) 5 cur = connection.cursor() 6 sql = "SELECT temp FROM weather WHERE date = %s;" 7 values = (start_date) 8 cur.execute(sql, values) 9 rows = cur.fetchall() 10 connection.commit() 11 cur.close() 12 connection.close() 13 14 print(rows)
試したこと
SQL文に違う条件を加えると、エラーは無くなりますが、日付で指定したいデータは取得できません。
sql = "SELECT temp FROM weather WHERE block_no = 1 AND date = %s;"
print(rows) #コンソールの表示=> []
補足情報(FW/ツールのバージョンなど)
●開発環境
- Python: 3.7.5
- Django: 2.2.2
- Postgresql:12.1
- psycopg2:2.8.4
回答1件
あなたの回答
tips
プレビュー