特定の月だけが入ったレコードだけを取り出すことはできるか?
例えば6月をtimestampやdateのフィールドからselectで抽出できるか?
今まで列の値をwhereを使って=かlikeを使って取得してきた。dateやtimestampでwhere句を使う方法を知らないので、まずそれを調べてみようと思う。
参考:https://stackoverflow.com/questions/8863156/selecting-by-month-in-postgresql
上記の例ではちょうどpostgresqlを使ってtimestampまたはdate型の月を指定してselectする方法について議論している。
要するにEXTRACTを使えば解決できるようだ。 WHERE句にEXTRACTを用いる。
SELECT id, name, birthday FROM employee.person WHERE EXTRACT(MONTH FROM birthday) > 10;
https://www.postgresql.org/docs/9.1/functions-datetime.html
select userid, date, zahyo from table_a WHERE EXTRACT(MONTH from table_a) = 6
conn = get_connection() cur = conn.cursor() #8月のデータを取得したい SELECT_SQL = """SELECT EXTRACT(month FROM date) FROM demo""" SELECT_SQL = """SELECT * FROM demo WHERE EXTRACT(month FROM date) = 8""" cur.execute(SELECT_SQL) res = cur.fetchall() print(res)