MySql建表时日期类型的出理

CREATE TABLE `test`.`dinnerinfo` (
`xm` VARCHAR(20) NULL DEFAULT '姓名' ,
`daytime` TIMESTAMP NULL DEFAULT 当天时间 )
COMMENT = '订餐人员统计表'
这是我手工建表建表生成的语句,第三行出问题,请问mysql建表时如何定义一个日期类型

mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。

1.DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份比较长久。如果实际应用中有这样的需求,就可以使用 DATETIME 类型。

2.TIMESTAMP

TIMESTAMP 用于表示 年月日 时分秒,但是记录的年份比较短暂。

TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示。所以不同时区的人看到的同一时间是  不一样的。

表中的第一个 TIMESTAMP 列自动设置为系统时间(CURRENT_TIMESTAMP)。当插入或更新一行,但没有明确给 TIMESTAMP 列赋值,也会自动设置为当前系统时间。如果表中有第二个 TIMESTAMP 列,则默认值设置为0000-00-00 00:00:00。

TIMESTAMP 的属性受 Mysql 版本和服务器 SQLMode 的影响较大。

如果记录的日期需要让不同时区的人使用,最好使用 TIMESTAMP。

3.DATE

DATE 用于表示 年月日,如果实际应用值需要保存 年月日 就可以使用 DATE。

4.TIME

TIME 用于表示 时分秒,如果实际应用值需要保存 时分秒 就可以使用 TIME。

5.YEAR

YEAR 用于表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默认是4位。如果实际应用只保存年份,那么用 1 bytes 保存 YEAR 类型完全可以。不但能够节约存储空间,还能提高表的操作效率。

    资料拓展:

每种日期时间类型都有一个有效值范围,如果超出这个范围,在默认的SQLMode下会报错,并以零值存储。

插入或更新时,日期时间类型允许“不严格”语法,以DATETIME为例(其他日期时间类型雷同):

YYYY-MM-DD HH:MM:SS 或 YY-MM-DD HH:MM:SS 格式的字符串。任何符号都可以用作日期部分或时间部分的间隔符。例如:“14-06-18 14:54:10”、“14*06*18 14.54.10”、“14+06+18 14=54=10”是等价的。对于包含日期时间的字符串值,如果月、日、时、分、秒的值小于10,不需要指定两位数。例如:“2014-2-3 2:3:6”、“2014-02-03 02:03:06”是等价的。

YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的字符串。如果字符串对于日期时间类型是合法的就可以解释为日期时间类型。例如:“20140618145410” 和 “140618145410”将被解释为 “2014-06-18 14:54:10” ,但是 “20140618145480” 是不合法的(秒数不合法),将被解释为 “0000-00-00 00:00:00”。

YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的数字。如果该数字对日期时间类型是合法的就可以解释为日期时间类型。例如:“20140618145410” 和 “140618145410” 将被解释为 “2014-06-18 14:54:10” 。数值的长度应为6、8、12、14。如果数值长度是 8 或 14 位长,则假定为 YYYYMMDD 或 YYYYMMDDHHMMSS 格式。如果数值为 6 或 12 位长,则假定为 YYMMDD 或 YYMMDDHHMMSS 格式。

    温馨提示:内容为网友见解,仅供参考
    第1个回答  推荐于2019-09-29

    create table dat_admin_user
    (
    user_id char(36) not null,
    user_name varchar(20) not null,
    pwd varchar(20) not null,
    create_time datetime not null,//创建日期类型
    status char(1) not null,
    primary key (user_id)
    )
    ENGINE = InnoDB;

    mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。

    拓展资料:

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

    MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

    由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

    Mysql-百度百科

    本回答被网友采纳
    第2个回答  推荐于2019-09-10

    1 mysql的日期时间类型:

    date, time, datetime, timestamp;

    2 示例:

    drop table t;

    create table test.t (

    a date, 

    b time , 

    c datetime DEFAULT '2012-01-01', 

    d timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

    3 说明:

    只有timestamp类型能设置DEFAULT CURRENT_TIMESTAMP,且有这个选项的timestamp列只能一个;

    ON UPDATE CURRENT_TIMESTAMP 意义为,更新该行时,如不显式指明该列的值则自动取当时时间作为该列的值;

    拓展资料:

    实例

    drop database if exists school; //如果存在SCHOOL则删除

    create database school; //建立库SCHOOL

    use school; //打开库SCHOOL

    create table teacher //建立表TEACHER

    (

    id int(3) auto_increment not null primary key,

    name char(10) not null,

    address varchar(50) default ‘深圳',

    year date

    ); //建表结束

    //以下为插入字段

    insert into teacher values('','glchengang',’XX公司‘,'1976-10-10');

    insert into teacher values('','jack',’XX公司‘,'1975-12-23');

    注:在建表中:

    1.将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key。

    2.将NAME设为长度为10的字符字段。

    3.将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。

    4.将YEAR设为日期字段。

    如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:

    mysql -uroot -p密码 < c:\school.sql

    如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。

    mySQL 百度百科

    本回答被网友采纳
    第3个回答  推荐于2017-09-15
    1 mysql的日期时间类型:
    date, time, datetime, timestamp;

    2 示例:
    drop table t;
    create table test.t (
    a date,
    b time ,
    c datetime DEFAULT '2012-01-01',
    d timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
    ;

    3 说明:
    只有timestamp类型能设置DEFAULT CURRENT_TIMESTAMP,且有这个选项的timestamp列只能一个;
    ON UPDATE CURRENT_TIMESTAMP 意义为,更新该行时,如不显式指明该列的值则自动取当时时间作为该列的值;本回答被提问者和网友采纳
    第4个回答  2012-10-13
    `daytime` date

    MySql建表时日期类型的出理
    create table dat_admin_user(user_id char(36) not null,user_name varchar(20) not null,pwd varchar(20) not null,create_time datetime not null,\/\/创建日期类型status char(1) not null,primary key (user_id))ENGINE = InnoDB;mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、...

    MYSQL 设计表的时候 选的TIMESTAMP 类型来记录时间 但我只想要它记录...
    如果你是用PHP+MySQL的组合 那么建议设置为int(11)存储时间戳 使用时用PHP的date()函数进行转换,时间戳是精确到秒的,转化成什么格式都可以 date("Y-m-d",$time);\/\/转化为2012-12-06 年月日 这种格式 date("Y-m-d H:i:s",$time);\/\/转化为2012-12-06 14:14:14 年月日时分秒这种...

    MySQL 中 datetime 和 timestamp 的区别与选择
    MySQL中datetime和timestamp的区别与选择,是建表时必要的考虑。这两者在表示时间方面有显著差异,包括占用空间、表示范围、时区处理及NULL值处理。首先,从占用空间和表示形式来看,datetime类型占用8字节,格式为yyyy-mm-dd hh:mm:ss,而timestamp类型占用4字节,格式为yyyy-mm-dd hh:mm:ss,因此timest...

    MySQL中如何设置创建时间字段mysql中创建时间
    1. 创建表时指定创建时间字段 在MySQL中,我们可以在创建表的时候,指定一个datetime类型的字段来记录数据的创建时间。例如:CREATE TABLE `users` (`id` INT NOT NULL,`username` VARCHAR(50) NOT NULL,`password` VARCHAR(100) NOT NULL,`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,PRIMARY K...

    MySQL插入时间处理语法C实现方法cmysql插入时间
    MySQL插入时间处理:语法C实现方法 在MySQL的数据库开发和管理中,时间处理是一项非常重要的任务,因为几乎每个应用程序都需要处理日期和时间数据。MySQL支持各种日期和时间数据类型,包括DATE、TIME、DATETIME和TIMESTAMP等。在这些数据类型中,TIMESTAMP是最受欢迎的,因为它保存了日期和时间的完整信息,并支持...

    在SQL中新建表中的出生时间用哪种数据类型
    规定使用date类型。1.单击桌面上的“ManagementStudio”图标。2.然后,在界面中,单击左上角面板角落的“newquery”选项。3.然后在这个接口中,输入SQL语句“创建表test3(idINTNOTNULL,nameNVARCHAR(50),datetypeDATE,PRIMARYKEY(id));.4.然后在界面中,点击左上角的“execute”按钮。5....

    在MySQL中,如何插入日期类型数据?
    insert into 替换成你的表名 (name,date,value) values ('魂牵梦萦','2009-06-08 23:53:17','朝秦暮楚');如果你是直接在Mysql中操作的话,建议用下navcait for mysql,界面操作完成后有一个查看代码,这样你既可以达到想要的功能,有能很快学到不同的sql语句。MySQL :是一个关系型数据库...

    mysql建表时怎样设置datetime类型的字段默认值为不自动更新的系统当前...
    也就是你无法 设置某一列,默认值是 NOW () 这样的处理 假如需要 某列的默认值为 当前数据库时间,那么可以使用 TIMESTAMP 数据类型。插入的时候,填写 null 即可。mysql> create table testA ( dt TIMESTAMP );Query OK, 0 rows affected (0.09 sec)mysql> insert into testA VALUES( null ...

    MySQL处理时间数据技巧与实践mysql存储时间
    当处理时间数据时,可以使用MySQL提供的TIMESTAMP列数据类型来保存日期时间数据,也可以用DATE列类型保存只包含日期的数据,或用TIME列类型保存只包含时间的数据。例如,要建立一个保存登录时间的列,可以用TIMESTAMP使其可以保存完整的日期时间数据。另外,你还可以用MySQL的时间函数进行运算,以获取所需的...

    MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30% _百...
    首先拿出一个快过期的云服务器,然后在服务器上启动MySQL,待会用函数狠狠的把它的CPU跑满。搭建环境:查看是否开启函数创建,创建表,表中数据类型为bigint、datetime、timestamp进行测试(先不要创建索引,因为生成的时间是随机无序的,维护索引的开销会很大,等数据跑完后续再生成索引)。随机生成字符串...

    相似回答