数据库mysql中,想建立一个默认值是系统当前时间的字段,那么这个字段的类型必须是timestam

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库mysql中,想建立一个默认值是系统当前时间的字段,那么这个字段的类型必须是timestam相关的知识,希望对你有一定的参考价值。

数据库mysql中,想建立一个默认值是系统当前时间的字段,那么这个字段的类型必须是timestamp的吗?我之前用datetime类型的,总报错。
create table share (id int primary key auto_increment,
name varchar(100),
addrip varchar(50),
savetime datetime not null default now(),
other varchar(50));
这是代码,时间那一行有问题,大家给看看.

应该用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 VARCHAR(50)
);

    SQL中关键字尽量大写,如果你用SQLyog它会自动把关键字转换为大写;

    name是保留字,虽然没有影响,但是不能保证以后没有影响,如果使用关键字、保留字做字段,最好加上``符号包裹,以免出错。所有自己命名的地方,都可以使用``符号包裹;

    另外,每个字段最好使用 COMMENT '内容',给每个字段加上注释,这样以后看到的时候不会想不起来字段的含义。

参考技术A DATETIME 就可以了 ,插系统当前时间,或是date 也可以本回答被提问者采纳 参考技术B 都可以
报错是你程序映射的问题吧
now()

mysql建表时怎样设置datetime类型的字段默认值为不自动更新的系统当前时间

只在插入数据的时候记录一次,之后不会自动改动

MySQL 中,默认值无法使用函数
也就是你无法 设置某一列,默认值是 NOW () 这样的处理

假如需要 某列的默认值为 当前数据库时间,那么可以使用 TIMESTAMP 数据类型。插入的时候,填写 null 即可。

mysql> create table testA ( dt TIMESTAMP );
Query OK, 0 rows affected (0.09 sec)

mysql> insert into testA VALUES( null );
Query OK, 1 row affected (0.01 sec)

mysql> insert into testA VALUES( null );
Query OK, 1 row affected (0.08 sec)

mysql> select * from testA;
+---------------------+
| dt |
+---------------------+
| 2011-10-15 20:30:35 |
| 2011-10-15 20:30:36 |
+---------------------+
2 rows in set (0.00 sec)

注: 上面的 SQL 是 2011-10-15 执行的,不是今天执行的。
参考技术A my_time datetime
——————————
INSERT INTO my_tb(my_time)
VALUES(now());
插入之后时间是不会变的呀!除非你又执行了什么语句把它的值更新了 。

以上是关于数据库mysql中,想建立一个默认值是系统当前时间的字段,那么这个字段的类型必须是timestam的主要内容,如果未能解决你的问题,请参考以下文章

mysql建表时怎样设置datetime类型的字段默认值为不自动更新的系统当前时间

mysql怎么在创建表时设置默认时间为系统时间

mysql如何让时间属性不自动更新

mysql 中怎么设置默认值为系统日期

MySQL高手请进!

Mysql中设置默认时间为系统当前时间