🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1309閲覧

Pymysql can only concatenateエラー

begginer_pygo

総合スコア16

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/03/23 09:51

前提・実現したいこと

target_timeをwhere句で使いたいのですが、エラーが出ています。
おそらくtarget_timeの使い方が悪いと思うのですが、行き詰ってしまっています。

発生している問題・エラーメッセージ

can only concatenate str (not "datetime.datetime") to str

該当のソースコード

Python 3.7.6

import json import boto3 import os from datetime import datetime import pytz import pandas as pd import io import pymysql import csv import numpy as np import time import shutil from datetime import timedelta dtformat = "%Y/%m/%d-%H:%M:%S.%f" apptz = "Asia/Tokyo" dbtz = "UTC" RDS_HOST = "HOST" RDS_USERNAME = "USER" RDS_PASS = "PASS" RDS_DBNAME = "DBNAME" conn = pymysql.connect(RDS_HOST, user=RDS_USERNAME, passwd=RDS_PASS, db=RDS_DBNAME, connect_timeout=5) ls_code = {"AAA","BBB"} ls_name = {"CCC","DDD"} def main(): try: for line_code,line_name in zip(ls_line_code, li_line_name): with conn.cursor() as cursor: now_time = datetime.now() target_time = now_time - timedelta(hours=96) sql_switch_data = "SELECT tst.time_start, tst.time_end, tst.required_time, ilr.p_item_code, ilr.a_item_code, tst.w_code " +\ "FROM TST tst " +\ "INNER JOIN ILR ilr ON tst.id = ilr.id " +\ "INNER JOIN CTP ctp ON ilr.code = ctp.code " +\ "WHERE time_start >= '" + target_time + "' AND ctp.code = '" + line_code + "'"

試したこと

target_time周辺の”などを書き換えてみましたがうまくいきませんでした、、、、

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

最後の行で、strにdatetime.datetimeクラスのインスタンスであるtarget_timeを繋ごうとしています。

target_timeを適切な文字列に変換しましょう。

投稿2021/03/23 10:23

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

begginer_pygo

2021/03/23 11:05

無事に動きました。 初歩的な質問にも回答いただきありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問