在MySQL中,日期的格式可以是多种多样的,比如“年-月-日 时:分:秒”、“年/月/日”、“日-月-年”等等。不过有时候,用户只需要日期中的年、月、日部分,而不需要时间,这时候就可以使用“DATE”类型的字段来存储。
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`birthday` date NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
上述代码创建了一个名为“user”的表,其中包含三个字段:id、name、birthday。其中birthday字段的类型为“DATE”,只包含了年、月、日的信息,不包含时间。
在MySQL中,要对“DATE”类型的字段进行筛选时,可以使用“YEAR()”、“MONTH()”和“DAY()”等函数提取年、月、日信息。例如:
-- 查询生日在某一年的用户SELECT * FROM `user` WHERE YEAR(`birthday`) = 1990;-- 查询生日在某个月的用户SELECT * FROM `user` WHERE MONTH(`birthday`) = 10;-- 查询生日在某一天的用户SELECT * FROM `user` WHERE DAY(`birthday`) = 1;
除此之外,如果需要在程序中将“DATE”类型的日期转化为指定格式的字符串,也可以使用MySQL提供的“DATE_FORMAT()”函数。例如:
-- 将日期转化为“年-月-日”格式的字符串SELECT DATE_FORMAT(`birthday`, '%Y-%m-%d') FROM `user`;
以上就是MySQL中日期只包含年月日的相关内容,希望能对各位读者有所帮助。