Mysql 日期,时间函数

来源:互联网 发布:小林一茶 知乎 编辑:程序博客网 时间:2024/06/09 23:40

Mysql版本:5.7


1.建立一个测试表:

CREATE TABLE `test` (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(150) NOT NULL,
  `date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8




2.插入测试数据

insert  into `test`(`id`,`name`,`date`) values (1,'laolee','1993-12-11');
insert  into `test`(`id`,`name`,`date`) values (2,'laozhou','2017-02-15');
insert  into `test`(`id`,`name`,`date`) values (3,'kitty','2017-03-07');
insert  into `test`(`id`,`name`,`date`) values (4,'lucy','2017-02-12');
insert  into `test`(`id`,`name`,`date`) values (5,'amy','2017-02-11');




3.日期相关的函数演示


3.1.now() : 查看当前时间

command: select now() as now



3.2.dayofyear(date):查看date在 当年中是第几天.

command: select dayofyear(now()) (现在是本年的第几天。2017-03-14 是第2017年的第73天)



3.3.CURRENT_TIMESTAMP():当前时间和now()一样

command:select CURRENT_TIMESTAMP()



3.4.CURDATE():返回当前日期yyyy-MM-dd格式

command:select CURDATE();



3.5.TO_DAYS(date):给定一个日期,返回一个天数,从0000-01-01开始

command:SELECT TO_DAYS('0000-01-01')



COMMAND:SELECT TO_DAYS(NOW());



3.6.date_format(date,format):日期换为字符串,用于以不同的格式显示日期/时间数据,

date 参数是合法的日期。format 规定日期/时间的输出格式。

%a缩写星期名%b缩写月名%c月,数值%D带有英文前缀的月中的天%d月的天,数值(00-31)%e月的天,数值(0-31)%f微秒%H小时 (00-23)%h小时 (01-12)%I小时 (01-12)%i分钟,数值(00-59)%j年的天 (001-366)%k小时 (0-23)%l小时 (1-12)%M月名%m月,数值(00-12)%pAM 或 PM%r时间,12-小时(hh:mm:ss AM 或 PM)%S秒(00-59)%s秒(00-59)%T时间, 24-小时 (hh:mm:ss)%U周 (00-53) 星期日是一周的第一天%u周 (00-53) 星期一是一周的第一天%V周 (01-53) 星期日是一周的第一天,与 %X 使用%v周 (01-53) 星期一是一周的第一天,与 %x 使用%W星期名%w周的天 (0=星期日, 6=星期六)%X年,其中的星期日是周的第一天,4 位,与 %V 使用%x年,其中的星期一是周的第一天,4 位,与 %v 使用%Y年,4 位%y年,2 位
EG:SELECT DATE_FORMAT(NOW(),'%Y-%m-%d')


EG:select DATE_FORMAT(NOW(),'%Y-%m-%d %k:%i:%s');




示例:查询test表中从现在起一个月以内的记录

SELECT * FROM test WHERE TO_DAYS(CURDATE()) - TO_DAYS(DATE) <= 30


0 0