好贷网好贷款

MySQL中关于日期、时间的数据类型和函数

发布时间:2016-12-5 8:31:38 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"MySQL中关于日期、时间的数据类型和函数",主要涉及到MySQL中关于日期、时间的数据类型和函数方面的内容,对于MySQL中关于日期、时间的数据类型和函数感兴趣的同学可以参考一下。

一、日期相关的数据类型 1、datetime 占用8字节,既显示了日期,又显示了时间。其表示的日期范围为“1000-01-01 00:00:00”到“9999-12-31 23:59:59” 2、date 占用3个字节,可显示的日期范围“1000-01-01”到“9999-12-31” 3、timestamp 和datetime显示结果一样,都是固定的“YYYY-MM-DD 00:00:00“。不同的是timestamp占用4个字节,显示范围为”1970-01-01 00:00:00”UTC到“2038-01-19 03:14:07“UTC。其实际存储的内容为”1970-01-01 00:00:00”到当前时间的毫秒数。在新建表时,列为timestamp类型可以设置一个默认值,而datetime不行。在更新表时,可以设置timestamp类型的列自动更新时间为当前时间 如下 新建表 create table score (     id int(10) not null primary key,     bz2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) 插入一条数据,不对timestamp类型插入 insert into score (id) VALUES (1) 运行结果如下:timestamp类型自动赋默认值,我们设置的默认值为CURRENT_TIMESTAMP 更新表 create table score (     id int(10) not null primary key,     bz2 TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) insert into score (id,bz2) values (1,CURRENT_TIMESTAMP) 结果如下   执行update语句 : update score set id=2   可以看到bz2的时间自动变为更新表的当前时间 4、year year类型占用1字节,并且可以在定义的时候指定显示的宽度为year(4)或者year(2)。year(4)显示的范围为1901-2070,year(2)的显示范围为1970-2070,该设置下,00-69代表2000-2069,代表最近的年份 5、time 占3个字节,显示范围为”-838:59:59“-”838:59:59“。为什么time的类型可以大于23,可以为负值,这是因为time不仅可以用来保存一天中的时间,还可以保存时间的间隔。   二、日期相关的函数 1、now(),current_timestamp(),sysdate() 执行sql语句:select now(),current_timestamp(),sysdate(),结果如下: 这样,看不出三个有什么区别,然后执行下面的sql语句: select sleep(2), now(),current_timestamp(),sysdate();其中,sleep(2)代表执行等待2秒 结果如下: 可以看出,now(),current_timestamp()这两个函数结果相同,它们等价,指的是sql开始执行的时间 而sysdate()的结果晚了两秒,代表执行该函数时候的当前时间。 2、时间加减的函数 直接进行now()+1会返回给你一个数字而不是日期,如下:select now()+1   那么如何在now的基础上加上一天或者减去一天,这就要用到date_add(date, interval 1 day),date_sub(date, interval 1 day)函数。 用法如下:select now() as today, date_add(now(), interval 1 day) as tomorrow,date_sub(now(), interval 1 day) as yestoday 结果如下: 在函数中使用的是day作为间隔时间,也可以使用year,month,week,hour,minute,second等   3、date_format()函数 其作用是按照用户需求格式化打印日期 select DATE_FORMAT(NOW(),'%Y%m%d') 其中%Y代表4位的year,%y代表2位的year;%m代表2位的month;%d代表2位的day。其中,%Y,%m,%d之间可以添加任何的字符已达到自己目标。上述格式输出20130915,如果设为’%Y:%m:%d',则输出2013:09:15,如果设为为’%Y/%m/%d',则输出2013/09/15

上一篇:Android4.0 桌面快捷方式布置
下一篇:名词王国里的死刑(java 面向对象的思考)

相关文章

相关评论