MySQL数据表中,如果timestamp类型的字段,值为0, python从数据库读取数据后,得到对象是什么类型,是否为None呢?
下面来测试下。
创建数据表
首先创建数据表,其中字段pr_rule_update_time
为timestamp类型,值为0.
CREATE TABLE `orange_service` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`service_group_name` varchar(100) NOT NULL,
`pr_rule` tinyint(3) NOT NULL DEFAULT '-1',
`pr_rule_update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`pr_rule_reason` varchar(256) NOT NULL DEFAULT '',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_host_port` (`service_group_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入数据
向数据表中插入一条记录。
mysql> insert into orange_service(service_group_name, pr_rule, pr_rule_reason) values('test', 0, '');
Query OK, 1 row affected (0.03 sec)
mysql> select * from orange_service\G
*************************** 1. row ***************************
id: 1
service_group_name: test
promotion_rule: 0
promotion_rule_update_time: 0000-00-00 00:00:00
promotion_rule_reason:
create_time: 2019-10-08 16:52:19
1 row in set (0.03 sec)
python 读取数据
通过python读取数据。
import MySQLdb
host = "10.66.99.88"
port = 5002
sql = "select * from cmdb.orange_service"
user = "test"
passwd = "test123456"
conn = MySQLdb.connect(host=host, port=port, user=user,passwd=passwd, connect_timeout=2, charset="utf8")
cursor = conn.cursor()
cursor.execute(sql)
ret = cursor.fetchone()
print(ret)
cursor.close()
conn.close()
output:
(1, 'test', 0, None, '', datetime.datetime(2019, 10, 8, 16, 52, 19))
从输出可以看到,timestamp类型的字段,通过python读取后,值为None。
Just try, don't shy.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2018-10-13 Golang mysql使用举例---连接本地数据库
2018-10-13 mysql通信协议
2018-10-13 大小端定义