python 操作 mysql 数据库 datetime 属性字段为 0000-00-00 00:00:00 的问题
撇开 sqlalchemy, 先讲 MySQLdb 和 pymysql
mysql 版本 mysql Ver 14.14 Distrib 5.1.73
新建一个测试表 test, 结构如下:
mysql> desc test;
+----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| id | int() | NO | PRI | NULL | |
| req_time | datetime | YES | | NULL | |
+----------+----------+------+-----+---------+-------+
rows in set (0.00 sec)
使用 MySQLdb 原生转义
cursor.execute("insert into test values (%s, %s)", (1, None))
None 插入后在 mysql 显示为 NULL
mysql> select * from test;
+----+----------+
| id | req_time |
+----+----------+
| | NULL |
+----+----------+
如果自己拼接 sql, 就会遇到问题
cursor.execute("insert into test values (%s, '%s')" % (0, None))
None 插入后在 mysql 显示为 0000-00-00 00:00:00
mysql> select * from test;
+----+---------------------+
| id | req_time |
+----+---------------------+
| | -- :: |
+----+---------------------+
对于大批量的插入, 可以使用 cursor.executemany, 唯一的缺点就是, sql 语句要写太多的 "%s", 看起来不够美观.
从各个方面看, sqlalchemy 是最好的选择, 有时间再更新 sqlalchemy 的内容.
python 操作 mysql 数据库 datetime 属性字段为 0000-00-00 00:00:00 的问题的更多相关文章
- 【转】python操作mysql数据库
		
python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...
 - python接口自动化(三十八)-python操作mysql数据库(详解)
		
简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...
 - Python 操作MySQL 数据库
		
Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的 ...
 - python操作mysql数据库的常用方法使用详解
		
python操作mysql数据库 1.环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get instal ...
 - Python操作MySQL数据库9个实用实例
		
用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...
 - Python操作MySQL数据库(步骤教程)
		
我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...
 - python操作mysql数据库的相关操作实例
		
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
 - Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
		
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
 - 使用python操作mysql数据库
		
这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector ...
 
随机推荐
- fildder教程
			
转载地址:写得很不错的fildder教程 http://kb.cnblogs.com/page/130367/ Fiddler的基本介绍 Fiddler的官方网站: www.fiddler2.c ...
 - mybatis由浅入深day01_4.9删除用户_4.10更新用户
			
4.9 删除用户 4.9.1 映射文件 4.9.2 代码: 控制台: 4.10 更新用户 4.10.1 映射文件 4.10.2 代码 控制台:
 - python计算时间差的方法
			
本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块date ...
 - mongoDB在windows64上安装
			
1.下载64位:mongodb-win32-x86_64-enterprise-windows-64-2.6.4-signed.msi 2.安装目录:将应用安装到此目录下面:C:\MongoDB\ 3 ...
 - date类型数据插入
			
--字段类型是dateinsert into tab(column) values(to_date('2017_06_30 11:38:22','yyyy-mm-dd hh24:mi:ss'));-- ...
 - 面试题思考:Servlet 生命周期、工作原理
			
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方法.它是在服务器装入Ser ...
 - 《C++ Primer Plus》10.2 抽象和类 学习笔记
			
10.2.1 类型是什么基本类型完成了下面的三项工作:* 决定数据对象需要的内存数量:* 决定如何解释内存中的位(long和float在内存中占用的位数相同,但是将它们转换为数值的方法不同):* 决定 ...
 - PyQt4布局管理——绝对定位方式
			
PyQt4中的布局管理器 布局管理器是编程中重要的一部分.所谓布局管理器是指我们在窗口中安排部件位置的方法.布局管理器有两种工作方式:绝对定位方式(absolute positioning)和布局类别 ...
 - PyQt4信号与槽
			
事件 事件(Events)是GUI程序中很重要的一部分.它由用户或系统产生.当我们调用程序的exec_()方法时,程序就会进入主循环中.主循环捕获事件并将它们发送给相应的对象进行处理.奇趣公司(Tro ...
 - 转移wordpress到另一台主机
			
做项目的代码是两个人,我想把另一个小伙伴做的转移到自己的linux系统上(主要是linux下一片空白,从头做太浪费时间了) 这个过程其实也可以用来类比从本地到服务器的过程(可能略有不同,真上线的时候会 ...