mysql 建表时设置默认当前时间

作者&投稿:蔡惠 (若有异议请与网页底部的电邮联系)
MySQL创建数据库表怎么直接设置默认当前时间?~

把字段的类型设置为 timestamp 类型,每次添加数据时不用手动添加,自动设为当前时间

修改日期类型为timestamp 并允许空,如下:
CREATE TABLE `test` (`aaaa` varchar(50) NOT NULL,`createday` timestamp NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
如果是在navicat下操作的话,设置字段的类型为timestamp,默认值写上CURRENT_TIMESTAMP

扩展资料

mysql中的时间类型:
mysql中我们用的时间类型有DATE DATETIME TIME TIMESTAMP四种:
1、DATE只表示日期,检索以YYYY-MM-DD的格式显示,范围是1000-01-01到9999-12-31。
2、TIME只表示时间,检索以HH:MM:SS格式显示,范围是00:00:00到23:59:59。
3、DATETIME表示了日期和时间,检索以YYYY-MM-DD HH:MM:SS格式显示。
4、TIMESTAMP和DATETIME表示格式一样两者的不同点如下:
当使用timestamp的时候,数据有更新的时候这个字段自动更新为当前时间,所以可以作为lastmodify使用,这个变化是默认设置,如果想使时间不更新可以设置DEFAULT CURRENT_TIMESTAMP
timestamp的范围不能早于1970或者晚于2037,超过这个时间范围的话为0。
timestamp存储的时候是转为UTC存储的,获取的时候根据客户端所在时区进行展示。
timestamp占4个字节,datetime占8个字节。

MySQL 里面.
默认值, 不允许使用 函数
下面是 例子
mysql> CREATE TABLE test_wang (
-> ID INT,
-> date1 VARCHAR(20),
-> date2 VARCHAR(20)
-> );
Query OK, 0 rows affected (0.01 sec)

-- 对列插入 随机数. 确认 数据是可以存储的.
mysql> insert into test_wang values (1, rand(), rand());
Query OK, 1 row affected (0.00 sec)

mysql> select * from test_wang;
+------+-------------------+-------------------+
| ID | date1 | date2 |
+------+-------------------+-------------------+
| 1 | 0.770875269333716 | 0.351427750989262 |
+------+-------------------+-------------------+
1 row in set (0.00 sec)

-- 这里尝试 设置 列 默认值 为 随机数, 结果失败了.
mysql> ALTER TABLE test_wang
-> MODIFY COLUMN date1
-> VARCHAR(20)
-> DEFAULT RAND() ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'RAND()' at line 4

-- 设置默认值 为 固定值, 是成功的.
mysql> ALTER TABLE test_wang
-> MODIFY COLUMN date1
-> VARCHAR(20)
-> DEFAULT '123' ;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0

DROP TABLE test_wang;

-- 如果是 日期的话, 尝试使用 TIMESTAMP 数据类型
-- 来实现这个功能.
mysql> CREATE TABLE test_wang (
-> id INT UNSIGNED AUTO_INCREMENT,
-> date1 TIMESTAMP,
-> date2 TIMESTAMP,
-> PRIMARY KEY(id)
-> );
Query OK, 0 rows affected (0.02 sec)

mysql> insert into test_wang(date1) VALUES (null);
Query OK, 1 row affected (0.00 sec)

mysql> select * from test_wang;
+----+---------------------+---------------------+
| id | date1 | date2 |
+----+---------------------+---------------------+
| 1 | 2011-10-12 11:30:26 | 0000-00-00 00:00:00 |
+----+---------------------+---------------------+
1 row in set (0.00 sec)

date1 VARCHAR default CURRENT_TIMESTAMP,

mysql中默认值可以用函数,
例如:
CREATE TABLE IF NOT EXISTS results
(examDate TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '考试时间'
)COMMENT='成绩表';



陈仓区15049288999: mysql怎么在创建表时设置默认时间为系统时间 -
衷脉西帕: 把字段的类型设置为 timestamp 类型,每次添加数据时不用手动添加,自动设为当前时间

陈仓区15049288999: MySQL 建表自动添加当前系统时间 -
衷脉西帕: CREATE TABLE `test`.`tabletest` ( `id` INT NOT NULL , `d` TIMESTAMP NOT NULL DEFAULT current_timestamp , PRIMARY KEY (`id`) ); insert into test.tabletest (idtest.tabletest)values(1); SELECT * FROM `test`.`tabletest`;1 2011-09-20 20:49:51

陈仓区15049288999: 如何将MYSQL字段设置成默认当前时间戳 -
衷脉西帕: 如果是日期字符串类型就是~CREATE TABLE 表名(time datetime NOT NULL DEFAULT NOW(),...) 如果是时间戳~CREATE TABLE 表名(time int NOT NULL DEFAULT CURRENT_TIMESTAMP(),...) -----希望对你有帮助~如果是插入的时候的话~在对应值上填写NOW()/CURRENT_TIMESTAMP() 也是可以的

陈仓区15049288999: 如何设置 Mysql中的datetime的默认值 -
衷脉西帕: 问题:MySQL datetime数据类型设置当前时间为默认值 解决:-- 方法一:由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的.代替的方案是使用TIMESTAMP类型代替...

陈仓区15049288999: 数据库mysql中,想建立一个默认值是系统当前时间的字段,那么这个字段的类型必须是timestam -
衷脉西帕: 应该用timestamp,建表SQL改动如下:CREATE TABLE share ( id INT(11) PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(100), addrip VARCHAR(50), savetime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, other ...

陈仓区15049288999: mysql 设置字段默认值为当前时间加5分钟 -
衷脉西帕: 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=...

陈仓区15049288999: mysql怎么设置默认时间为系统时间? -
衷脉西帕: now()就是默认的系统时间.

陈仓区15049288999: mysql为什么不能为时间设置默认值 -
衷脉西帕: -- 方法一: 由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的.代替的方案是使用TIMESTAMP类型代替DATETIME类型. TIMESTAMP列类型自动地用当前的日期和时间标记...

陈仓区15049288999: 使用hibernate怎么在mysql内自动加上当前时间 -
衷脉西帕: 建表的时候 就设置 那个字段 默认为当前时间啊!将字段设置为timestamp,然后默认值写上CURRENT_TIMESTAMP即可、 呵呵……

陈仓区15049288999: MySQL 默认时间约束 语句 -
衷脉西帕: msg id integer auto increment 主键 content varchar(45) senddate datetime 写入insert into msg (content) values ('123') 主键id 自动增长不用管 content写入了值 '123' senddate自动就是当前的时间

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