Проблема:питон кортеж возвращается datetime.datetime
Всякий раз, когда я получаю результат следующего запроса:
"SELECT email, url, `timestamp` FROM `transaction` WHERE `email` != '' AND `timestamp` >= \'" + dateonlystring + "\' AND `timestamp` < DATE(DATE_ADD(\'" + dateonlystring + "\', INTERVAL 1 DAY))"
Это придумывает:
('[email protected] ',' http://sample.url.com ', datetime.datetime (2015, 2, 25, 10, 11, 19))
Почему это datetime.datetime (2015, 2, 25, 10, 11, 19)))?
И как я могу включить, что в этом:
[email protected]~ http://sample.url.com~2015-02-25 10:11:19
Мой код/Что я пробовал:
#Date
#datestamp = datetime.strptime('2015-02-25 00:00:00', "%Y-%m-%d %H:%M:%S")
datestamp = datetime.now()
dateonlystring = str(datestamp.date().strftime("%Y-%m-%d %H:%M:%S"))
datetimestring = str(datestamp.now().strftime("%Y%m%d%H%M%S"))
#Dunchangeme:
#Query:
q_getstuff = "SELECT email, url, `timestamp` FROM `transaction` WHERE `email` != '' AND `timestamp` >= \'" + dateonlystring + "\' AND `timestamp` < DATE(DATE_ADD(\'" + dateonlystring + "\', INTERVAL 1 DAY))"
try:
con = mdb.connect(hostname, username, password, database)
cur = con.cursor()
cur.execute(q_getstuff)
result = cur.fetchall()
for row in result:
tuplecrap = str(row).replace('(', '').replace(')', '').replace('\'', '').replace(', ', '~')
print tuplecrap
Из обратите внимание, что прокомментированный первый datestamp
есть, если пользователь намеревается перейти к определенной дате (в отличие от только сейчас).
Самый простой способ - просто избавиться от скобок и запятых, как я уже говорил выше, но это не решает проблему, не вдаваясь в сложные решения регулярных выражений, и я уверен, что это неправильный путь ,
Любые предложения?
Преобразование кортежа в строку и манипулирования это, безусловно, не является «простым способом». Кажется, вы знаете о функции 'strftime', почему бы не использовать это? – interjay
Что такое 'mdb'? Почему вы используете форматирование строк вместо параметризованных запросов? Обычно вы должны просто передавать объекты datetime (и предпочтительно - * timezone-aware * datetime), а драйвер должен сериализоваться в формате, который понимает движок sql. – jfs