使用df.to_sql时,时间00:00:00存储在我的数据库中

时间:2016-11-30 05:24:29

标签: python pandas sqlalchemy

我的pandas数据框中有一张表。

id count
1   12
2   4
3   7
4   3
5   9

我定义了一个字符串

dateSelect = "'2016-11-20'"

我想在我的dates

中将新列添加到我的df dateSelect作为常量值

所以我做了df['dates'] = pd.Timestamp(dateSelect)

我得到了结果

id count dates
1   12   2016-11-20
2   4    2016-11-20
3   7    2016-11-20
4   3    2016-11-20
5   9    2016-11-20

(也尝试使用

df['dates'] = dateSelect
df['dates'] = pd.to_datetime(df['dates'])

现在,我使用sqlalchemy

将此数据框存储在我的数据库中
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqldb://name:pwd@xxx.xxx.xx.xx/dbname', echo=False)
df.to_sql(name='date_test', con=engine, if_exists = 'append', index=False) 

当我从我的数据库中查询时

select * from date_test;

我得到以下结果。

id count dates
1   12   2016-11-20 00:00:00
2   4    2016-11-20 00:00:00
3   7    2016-11-20 00:00:00
4   3    2016-11-20 00:00:00
5   9    2016-11-20 00:00:00

但我不想有时间来那里。 有没有其他方法可以在我的数据框中查询,以便这些00:00:00不会出现在我的数据库中。

P.S我不想在存储数据库后对我的表进行任何更改

1 个答案:

答案 0 :(得分:1)

您可以尝试将datetime转换为日期对象,然后写入sql。

dateSelect = '2016-11-20'
df['dates'] = dateSelect
df['dates'] = pd.to_datetime(df['dates']).dt.date

希望这有帮助。

相关问题