mysql - 如何将日期插入mysql数据库
问题描述
我正在尝试将包含字符串值日期的数据流插入 mysql 数据库并遇到一个非常奇怪的问题。
我已经搜索了多个站点以寻找答案,但我没有发现任何人有类似的问题,因为这似乎是不可能的。
使用此代码,如果我尝试仅将流中的日期字段插入数据库,则它可以正常工作。
with open('/home/pi/examples/weather_log.csv', newline='') as csvfile:
linereader=csv.reader(csvfile, delimiter=',')
for row in linereader:
l_rec_time=datetime.datetime.strptime(row[0],'%Y-%m-%d %H:%M:%S')
data=l_rec_time
sql="INSERT INTO reports (rec_time) VALUES ('%s',)"
print(data)
cursor.execute(sql,(data))
但是,如果我包含流中的任何其他字段(还有 15 个其他字段),我会收到错误消息。
with open('/home/pi/examples/weather_log.csv', newline='') as csvfile:
linereader=csv.reader(csvfile, delimiter=',')
for row in linereader:
l_rec_time=datetime.datetime.strptime(row[0],'%Y-%m-%d %H:%M:%S')
l_wnddir=int(row[1])
data=l_rec_time
sql="INSERT INTO reports (rec_time, wnddir) VALUES ('%s', '%s')"
print(data)
cursor.execute(sql,(data))
db.commit()
我已经尝试了包含其他 15 个字段但没有提交日期的代码,并且它没有任何问题。如果我包含日期字段,则会收到以下错误:
Traceback (most recent call last):
File "<pyshell#157>", line 9, in <module>
cursor.execute(sql,(data))
File "/home/pi/.local/lib/python3.5/site-packages/mysql/connector/cursor.py", line 551, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/home/pi/.local/lib/python3.5/site-packages/mysql/connector/connection.py", line 490, in cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
File "/home/pi/.local/lib/python3.5/site-packages/mysql/connector/connection.py", line 395, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '2019-05-24 12:46:05'', '45')' at line 1
任何人都可以阐明这一点吗?这个错误一直让我抓狂,直到我决定一次向代码中添加一个字段。
解决方案
推荐阅读
- validation - 在 H2O 中训练 RMSE 高于 Validation RMSE
- android - React-Native ,Drawer Navigator(React-Navigation)中的项目在某些设备上不完全可见
- csv - 带有 CSV 数据的 Jmeter:如何在参数位于字符串中而不是末尾的地方发布帖子
- android - Shopify Android 购买 SDK gradle 构建错误
- r - R knitr::kable:避免一列的文本换行
- android - 芯片组 OnCheckedChangeListener() 未触发
- javascript - Open Weather Api(显示天气图标)
- java - 如何在动作控制器中默认扩展不可用的 Locale.Language?
- c# - Convert.ToString(str) 和 str?.ToString() 之间的区别 ?? “”
- bash - 将脚本分配给包装脚本的变量