mysql中timestamp类型 我设置了默认值 为什么java中添加时间类型还是null 在数据库中可以

作者&投稿:从政 (若有异议请与网页底部的电邮联系)
MySQL timestamp的默认值怎么设置~

CREATE TABLE `test1` (
`a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`c` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
建表test1。3个字段 a,b,c

insert into test1 VALUES(NULL,NULL,NULL)
插入的时候设置3字段都是 null

然后成功
Affected rows : 1, Time: 0.00sec

步骤如下“
1、自动UPDATE 和INSERT 到当前的时间:
表:

Table Create Table
t1 CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
数据:
1 2007-10-08 11:53:35
2 2007-10-08 11:54:00
insert into t1(p_c) select 3;
update t1 set p_c = 2 where p_c = 5;
数据:
1 2007-10-08 11:53:35
5 2007-10-08 12:00:37
3 2007-10-08 12:00:37
2、自动INSERT 到当前时间,不过不自动UPDATE。
表:

Table Create Table

t1 CREATE TABLE `t2` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
数据:
insert into t2(p_c) select 4;
update t2 set p_c = 3 where p_c = 5;
1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
5 2007-10-08 12:00:37
4 2007-10-08 12:05:19
3、一个表中不能有两个字段默认值是当前时间,否则就会出错。不过其他的可以。
表:

Table Create Table

t1 CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`p_timew2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
数据:
1 2007-10-08 11:53:35 0000-00-00 00:00:00
2 2007-10-08 12:00:37 0000-00-00 00:00:00
3 2007-10-08 12:00:37 0000-00-00 00:00:00
4 2007-10-08 12:05:19 0000-00-00 00:00:00

你用hibernate的话,除非你在保存的时候用java指定他的值,否则本身还是NULL , 你要么就将这个列删除,由数据库自己去管理就可以了!

用的hibernate?如果直接写sql的话,不写这一列,是会有默认时间的。
如果给着一些写入null,那就是null了,你用的hibernate就属于这种情况啊。
hibernate要想插入时间,只能去java中的时间,然后插入了。

是Long类型的,时间戳是一段数字


在mysql中, select*, max(create_ time) from
select*,max(create_time)froma wherecreate_time groupbyuser_id 这句可以理解为将结果集根据user_id分组,每组取time最大一条记录。这样就很好的实现了批量查询最近记录,并且仅仅需要遍历一次表,即使在数据量巨大的情况下也可以在很短的时间查出结果。

mysql中的datetime类型如何格式化输出?
datetime包含毫秒,要格式化输出,用fffDateTime t = DateTime.Now;Console.WriteLine(t.ToString("yyyy-MM-dd hh:mm:ss fff"));注:mysql里面的datetime类型的精确度是可以到1\/ 10 ^ 6 秒的,某些客户端(如navicat for mysql)的显示经常只能看到精确到秒,其实是设计表的时候的配置问题。

mysql 时间字段用什么类弄,长度是多少
mysql时间字段用:Date、Datetime和Timestamp。(1)“Date”数据类型:用于存储没有时间的日期。 Mysql获取并显示此类型的格式为“ YYYY-MM-DD”,支持的时间长度范围是“ 1000-00-00”至“ 9999-12-31”。(2)“Datetime”类型:存储日期和时间的数据。 存储和显示格式为“ YYYY-MM-DD HH:MM:...

mysql中DATETIME,DATE和TIMESTAMP的区别
DATE 类型可用于需要一个日期值而不需要时间部分时。MySQL 以 'YYYY-MM-DD' 格式检索与显示 DATE 值。支持的范围是 '1000-01-01' 到 '9999-12-31'。TIMESTAMP 列类型提供了一种类型,通过它你可以以当前操作的日期和时间自动地标记 Insert 或Update 操作。如果一张表中有多个 TIMESTAMP 列,...

mysql中“datetime”和“timestamp”的区别是什么?
TIMESTAMP列不可以设置值,只能由数据库自动去修改。一个表可以存在多个TIMESTAMP列,但只有一个列会根据数据更新而改变为数据库系统当前值。因此,一个表中有多个TIMESTAMP列是没有意义,实际上一个表只设定一个TIMESTAMP列。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle...

mysql数据库里的日期用timestamp还是datetime好
8. 以后任何时间修改表中的记录时,对应记录的timestamp值会自动被更新为当前的系统时间。结论:timestamp类型适合用来记录数据的最后修改时间,因为只要你更改了记录中其他字段的值,timestamp字段的值都会被自动更新。看完这个比较你就知道用哪个好啦 我们公司一般用datatime,可控性比较强 jdbc查询Mysql数据...

mysql 表字段名称如何设置成time吗
重命名是吗?是的话使用:alter table 表名 change 原字段名 time 字段类型;

mysql中DATETIME,DATE和TIMESTAMP的区别
一、TIMESTAMP 显示格式:YYYY-MM-DD HH:MM:SS 时间范围:[ '1970-01-01 00:00:00'到'2037-12-31 23:59:59']TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数据列刷新。TIMESTAMP DEFAULT CURRENT_TIMESTAMP 在创建新记录的时候...

mysql中DATETIME,DATE和TIMESTAMP的区别
DATETIME 日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。TIMESTAMP[(M)]时间戳。范围是'1970-01-01 00:00:00'到2037年。TIMESTAMP列用于INSERT或UPDATE操作时...

数据库中所有的数据类型?
SQL 用于各种数据库的数据类型:一、MySQL 数据类型:在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date\/Time(日期\/时间)类型。1、Text 类型。2、Number 类型。这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而...

西夏区18074613599: MySQL中DATETIME,DATE和TIMESTAMP类型的区别 -
诗泉卡纳: 转:DATETIME 类型可用于需要同时包含日期和时间信息的值.MySQL 以 'YYYY-MM-DD HH:MM:SS' 格式检索与显示 DATETIME 类型.支持的范围是 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'.(“支持”的含义是,尽管更早的值可能工...

西夏区18074613599: mysql 中 datetime和 timestamp的区别 -
诗泉卡纳: DATETIME、DATE和TIMESTAMP,除了DATE用来表示一个不带时分秒的是日期,另外两个都带时分秒.TIMESTAMP还可以精确到毫秒.1. TIMESTAMP列必须有默认值,默认值可以为“0000-00-00 00:00:00”,但不能为null.2. ...

西夏区18074613599: mysql中日期类型DATETIME和TIMESTAMP的区别 -
诗泉卡纳: datetime 是我们常见的时间格式,如'1970-01-01 00:00:00'timestamp是时间戳.时间戳一般是1970-01-01 00:00:00到现在的秒数, 一般是12位的整数.可以后面带小数点,精确度高到毫秒等.

西夏区18074613599: 如何设置mysql中的时间类型 -
诗泉卡纳: Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp.Date数据类型:用来存储没有时间的日期.Mysql获取和显示这个类型的格式为“YYYY-MM-DD”.支持的时间范围为“1000-00-00”到“9999-12-31”.Datetime...

西夏区18074613599: mysql储存时间选择怎样的字段类型 -
诗泉卡纳: 储存时间,常用的有三个选择datetime、timestamp、int.昨夜同事问到了,于是今天就总结一下自己的理解.插入效率:datetime > timestamp > int读取效率:int > timestamp > datetime储存空间:datetime > timestamp = int具体上面的实验数据...

西夏区18074613599: MySQL中datetime和timestamp的区别 -
诗泉卡纳: 创建一张表,一种有3个字段:编号 datetime_info timestamp_info datetime_info字段的类型datetime 范围在1000---9999之间 保存时间:1000-11-30 20:42:01没有提示报错 timestamp_info的字段类型是timestamp 范围在1970 --2037 之间 比如:1900-11-30 20:42:01 就会提示报错 如果输入:1970-11-30 20:42:01 就不会报错了

西夏区18074613599: Mysql时间字段格式如何选择,TIMESTAMP,DATETIME,INT? -
诗泉卡纳: 其次,TIMESTAMP类型在默认情况下,insert、update 数据时,TIMESTAMP列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新.第三,TIMESTAMP比较受时区timezone的影响以及MYSQL版本和服务器的SQL MODE的影响 所以一般来说,我比较倾向选择DATETIME,至于你说到索引的问题,选择DATETIME作为索引,如果碰到大量数据查询慢的情况,也可以分区表解决.

西夏区18074613599: sql语句中的timestamp类型 -
诗泉卡纳: 首先纠正一下你这里使用错误的类型~timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的.timestamp 一般用作给表行加版本戳的机制.存储大小为 8 字节.它不是用来存时间的,时间应该用datetime类型~如果你这里的时间列是想获取当前系统时间的话,你可以在他的默认列里输入,getdate(),然后在插入的时候跳过这一列就行了~

西夏区18074613599: mysql 表中只能使用一次字段类型为timestamp 的吗 -
诗泉卡纳: 是的当一个表中数据类型为timestamp时,只能有一个列用CURRENT_TIMESTAMP设置为default值.考虑用datetime吧

西夏区18074613599: MYSQL TIMESTAMP类型 (yyyy - mm - dd hh:mm:ss)时间段查询
诗泉卡纳: SELECT * FROM table1 WHERE "2011-01-01 12:11:11"<='time1' And 'time1'<="2011-01-01 12:11:11"

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网