Mysql中字段类型之时间戳大坑
一 、环境说明:
|
在目前项目中,有这样的一张表,用来记录会议的相关信息,例如:会议的内容、会议的参会人员、会议的地点、会议的状态(会议是否已结束、会议是否被撤销)、会议的开始时间以及该条信息的创建时间。 会议的开始时间和信息的创建时间的类型都设置为了timestamp,并且默认值是CURRENT_TIMESTAMP。 |
二、如何入坑的
|
目前有这样的一个需求:用户发起的会议可以手动的进行撤销的操作,后台的逻辑自然需要更新该条会议信息,到了这里问题就来了:我手动更新了该条信息之后,之前设置好的会议开始时间,居然变成了该条sql语句执行成功时的时间了,这样就有点忒尴尬的。 |
三、坑中半死不活
|
在遇到了这个问题之后,然后就自然而然的检查自己的代码,看看自己执行sql的同时,是否把时间给更新了,发现了一下没有,突然人就瞢逼了,what,还能出现这个情况,然后同事提醒了一下,是不是表中字段类型设置为了timestamp的缘故,查了下百度,真的是这个原因。 |
四、解决方案
|
由于自己在建立表的时候,将时间字段都设置为了时间戳timestamp,并且默认时间为CURRENT_TIMESTAMP,所以在执行更新语句的时间,该会议开始时间的字段也会进行更新,以保证时间是当前系统的时间。从而导致了会议时间突然变更的这个神马情况。 |
自己在工作遇到了这种问题,在这里记录下来,以便后期不要在采坑。
Mysql中字段类型之时间戳大坑的更多相关文章
- Mysql中字段类型之时间戳大坑2
本文的内容依旧是讨论mysql字段类型为时间戳timestamp的问题,在遇到了之前的那个问题之后,今天测试人员又给我提了一个bug,是在前端页面提交会议表单的时候,选择了一个会议时间(2059年 ...
- MySQL中字段类型为timestamp的小坑
之前遇到过一个MySQL的字段为timestamp类型的小坑. MySQL中一个字段存储时间类型数据的时候,该字段的类型如果为timestamp类型的话,最多只能存储到2038-01-19 11:14 ...
- mysql中字段类型是datetime时比较大小问题
select sum(studychj) as tofflinejz from afterline where studybegin >= '2010-01-01 00:00:00' and s ...
- Mysql中字段类型不一致导致索引无效
修改后 详细见楼下链接 http://ustb80.blog.51cto.com/6139482/1287847
- 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题
今天在做项目过程中,查询一个表中数据时总碰到这个问题: java.sql.SQLException:Value '0000-00-00' can not be represented as ...
- 修改MySQL中字段的类型和长度
MySQL修改字段类型的命令是: mysql> alter table 表名 modify column 字段名 类型; 假设在MySQL中有一个表为:address,有一个字段为city 初始 ...
- MySQL 常用字段类型,介绍及其建表使用方法经验分享
由于工作的公司没有专业的DBA又经常需要建立各种各种的表来满足自己的业务逻辑,所以经常查看MySQL 手册或者谷歌查看相关资料,所以本人就根据我的工作经验和相关资料来介绍一下MySQL各种字段类型及其 ...
- 一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.简述MySQL中索引类型对数据库的性能的影响 2.RDB和AOF机制 3.Redis的过期键的删除策略 4.Redis ...
- Oracle与mysql的字段类型整理
Oralce的字段类型整理如下: Mysql的字段类型整理如下: 最后面一栏是对应JAVA的基本类型.希望对初学者有用,初学者在学习JAVA的时候,不知道怎么把JAVA的对象指向到ORALCE或者MY ...
随机推荐
- PHP——0128练习相关3——设置文本域的默认值
都知道文本框的的默认值只要设置value属性即可但是文本域是没有value属性的要设置文本域的默认值只要<textarea>默认值</textarea>即可简单吧,呵呵..
- http协议之报文详解
一. 概述 用于HTTP协议交互的信息被称为HTTP报文.请求端(客户端)的http报文叫做请求报文,响应端的叫做响应报文. 报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块.报文包含了 ...
- keepalived管理LVS文件详解
#全局设置,只设置一个 全局路由就可以,全局路由不能重复唯一标识. global_defs { router_id LVS_01 #全局路由ID,唯一不能重复 } #实例 vrrp_instance ...
- MongoDB(二):MongoDB简介及安装
一.MongoDB 1.简介 MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.旨在为WEB应用提供可扩展的高性能数据存储解决方案.在高负载的情况下,添加更多的节点(分布式 ...
- grid-tooltip扩展方法
调用:$('#dg').datagrid('doCellTip', { 'max-width': '100px' }); /** * 扩展两个方法 */$.extend($.fn.datagrid.m ...
- METIS 安装过程
官网下载包 yum -y instll gcc yum -y install gcc* yum -y install cmake 环境Python2.7.3 创建/home/Python/metis ...
- 故如果要比较两个字符串是否相同可以对a调用equal
故如果要比较两个字符串是否相同(而不是他们的地址是否相同).可以对a调用equal: System.out.println(a.equal(b)); equal用来比较两个对象中字符串的顺序. a.e ...
- NANDflash和NORflash的区别(设计师在使用闪存时需要慎重选择)
NANDflash和NORflash的区别(设计师在使用闪存时需要慎重选择) NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底 ...
- (转)directx中丢失的设备(lost device)
directx中丢失的设备(lost device) 丢失的设备 一个Microsoft? Direct3D?可以处于操作状态或丢失状态.操作状态是设备的正常状态,设备按预期运行并present所 ...
- 对特殊字符编码js与c#中的处理方法
js: encodeURIComponent();编码 c#: Uri.UnescapeDataString();解码