mysql中如何设置默认时间为当前时间?

修改日期类型为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_TIMES...
mysql中如何设置默认时间为当前时间?
修改日期类型为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个字节。
2020-04-11
MySQL 中,默认值无法使用函数
也就是你无法 设置某一列,默认值是 NOW () 这样的处理

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

dt TIMESTAMP
等价于
dt TIMESTAMP default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

create table testB (
id int PRIMARY KEY,
val varchar(10),
dt TIMESTAMP
);

INSERT INTO testB(id, val) VALUES(1, 'A');
INSERT INTO testB(id, val) VALUES(2, 'B');

SELECT
*
FROM
testB;
+----+------+---------------------+
| id | val | dt |
+----+------+---------------------+
| 1 | A | 2013-03-21 14:24:20 |
| 2 | B | 2013-03-21 14:24:21 |
+----+------+---------------------+
2 rows in set (0.00 sec)

UPDATE
testB
SET
val = 'C'
WHERE
id = 1;

SELECT
*
FROM
testB;

+----+------+---------------------+
| id | val | dt |
+----+------+---------------------+
| 1 | C | 2013-03-21 14:28:02 |
| 2 | B | 2013-03-21 14:24:21 |
+----+------+---------------------+
2 rows in set (0.00 sec)

假如仅仅需要 插入时记录时间, 更新的时候不需要, 那么需要修改表定义方式:
TIMESTAMP not null default CURRENT_TIMESTAMP

create table testC (
id int PRIMARY KEY,
val varchar(10),
dt TIMESTAMP not null default CURRENT_TIMESTAMP
);

INSERT INTO testC(id, val) VALUES(1, 'A');
INSERT INTO testC(id, val) VALUES(2, 'B');

SELECT
*
FROM
testC;

+----+------+---------------------+
| id | val | dt |
+----+------+---------------------+
| 1 | A | 2013-03-21 14:35:12 |
| 2 | B | 2013-03-21 14:35:13 |
+----+------+---------------------+
2 rows in set (0.00 sec)

UPDATE
testC
SET
val = 'CC'
WHERE
id = 1;

SELECT
*
FROM
testC;

+----+------+---------------------+
| id | val | dt |
+----+------+---------------------+
| 1 | CC | 2013-03-21 14:35:12 |
| 2 | B | 2013-03-21 14:35:13 |
+----+------+---------------------+
2 rows in set (0.00 sec)2013-04-02
哦 ,明白你的意思了,把日期类型 选择成timestamp 允许空 就可以了
CREATE TABLE `dtal` (
`uname` varchar(50) NOT NULL,
`udate` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;2013-04-02
比如字段叫time
设置字段信息为当前插入或者修改的时间使用now()函数,或者current_date()2013-04-01
mengvlog 阅读 37 次 更新于 2025-09-10 04:12:15 我来答关注问题0
  • MySQL设置默认时间是将日期和时间类型的值自动设置为当前时间或指定时间。MySQL中支持三种不同的方式来设置默认时间:使用不带参数的 DEFAULT 子句、使用 DEFAULT CURRENT_TIMESTAMP 或指定一个常量值。首先,如果您想在MySQL中设置默认时间,可以使用不带参数的 DEFAULT 字句:ALTER TABLE table_name ADD CO...

  • 修改日期类型为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_TIMES...

  •  湖北倍领科技 如何设置 Mysql中的datetime的默认值

    在MySQL中设置datetime类型的默认值时,我们首先需要了解字段默认值不支持函数的事实。因此,直接使用create_timedatetimedefaultnow()的形式设置默认值是不可能的。一个可行的替代方案是使用TIMESTAMP类型代替DATETIME类型。选择TIMESTAMP类型后,列会自动记录INSERT或UPDATE操作的当前日期和时间。若存在多个TIMESTA...

  •  深空见闻 mysql数据插入设置同个时间

    在MySQL数据库中,若想在数据插入时设置相同的时间,可以通过使用CURRENT_TIMESTAMP函数或NOW函数、设置字段默认值为当前时间、使用触发器等方法实现。1. 使用CURRENT_TIMESTAMP函数或NOW函数 CURRENT_TIMESTAMP函数:在插入数据时,可以使用MySQL内置的CURRENT_TIMESTAMP函数来获取当前的时间戳,并将其作为插入...

  •  文暄生活科普 我们公司使用的是亚马逊云AWS,请问如何修改AWS的RDS-MYSQL数据库的默认时区?

    数据库恢复时的时区设置:如果你是从快照恢复数据库,时区将会被默认设置为UTC。如果你是恢复到某个特定时间点,时区将会保持和原数据库实例一致。重要提示:在进行任何参数更改之前,建议先在测试环境中验证更改的影响,以确保它们不会对你的生产环境造成负面影响。

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部