mysql python date类型_mysql和python datetim

我试图使用sqlalchemy包通过python将记录插入mysql数据库。在

我在mysql中有datetime类型的列,它们已经通过load table inline命令接受了以下格式的数据:'2013-04-03 00:05:00-05:00'

注意这是由python中的pytz模块生成的。我可以使用load table inline 命令通过mysql控制台加载600000个具有完全相同格式的日期戳的行。MySql在加载时接受它们,但我不确定它是否维护时区信息。这对我来说并不重要,因为我还有3个其他列,它们代表我感兴趣的其他时区中的日期时间。所以我知道哪一列表示EST/EDT或CST/CDT,如果需要,我可以基于它进行查询。我不会在mysql中进行任何时区转换,因为我已经有了表示感兴趣的时区的列。在

这是根据mysql的文档:

^{pr2}$

问题是pytz模块在我试图插入的日期时间戳中提供了时区的信息。实际上我有4列(EST, UTC, EST/EDT and CST/CDT),因此所有列都在日期时间戳中嵌入了它们的时区信息。在

注意我没有使用自定义INSERT查询。这是sqlalchemy执行insert many的默认方式:

执行插入的函数如下所示:def insert_data(data_2_insert, table_name):

# Connect to database using SQLAlchemy's create_engine()

engine = create_engine('mysql://blah:blah@localhost/db_name')

# Metadata is a Table catalog.

metadata = MetaData()

my_table = Table(table_name, metadata, autoload=True, autoload_with=engine)

column_names = tuple(c.name for c in my_table.c)

final_data = [dict(zip(column_names, x)) for x in data_2_insert]

ins = my_table.insert()

conn = engine.connect()

conn.execute(ins, final_data)

conn.close()

错误消息:Traceback (most recent call last):

File "script.py", line 191, in

main()

File "script.py", line 39, in main

insert_data(file_csv, table_name)

File "script.py", line 58, in insert_data

conn.execute(ins, final_data)

File "/usr/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 824, in execute

return Connection.executors[c](self, object, multiparams, params)

File "/usr/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 874, in _execute_clauseelement

return self.__execute_context(context)

File "/usr/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 894, in __execute_context

self._cursor_executemany(context.cursor, context.statement, context.parameters, context=context)

File "/usr/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 960, in _cursor_executemany

self._handle_dbapi_exception(e, statement, parameters, cursor, context)

File "/usr/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 931, in _handle_dbapi_exception

raise exc.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)

sqlalchemy.exc.OperationalError: (OperationalError) (1292, "Incorrect datetime value: '2013-04-03 00:05:00-05:00' for column 'rtc_date_est' at row 1")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值