str_to_date函数:将字符串转换为日期
作用:将‘日期字符串’转换为‘日期类型’数据
执行结果:DATE类型
用法:str_to_date(‘日期字符串’,‘日期格式’)
MySQL日期格式:
%Y:代表4位的年份
%y:代表2位的年份
%m:代表月,格式(01 … … 12)
%c:代表月,格式(1 … … 12)
%d:代表日
%H:代表小时,格式(00 … … 23)
%h:代表小时,格式(01 … … 12)
%i:代表分种,格式(00 … … 59)
%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表 时间,格式为24 小时(hh:mm:ss)
%S:代表 秒,格式为(00……59)
%s:代表 秒,格式为(00……59)
联想知识点:java中的日期格式
yyyy 年
MM 月
dd 日
HH 时
mm 分
ss 秒
SSS 毫秒
案例:
查询出1981-12-03入职的员工
select ename,hiredate from emp where hiredate = ‘1981-12-03’;
执行成功原因:
输入的日期字符串格式与MySQL默认日期格式相同,MySQL默认日期格式:%y-%m-%d
总结:
A. 日期是数据库本身的特色,也是数据库本身机制中的一个重要内容,所以仍需掌握;
B. 每一个数据库处理日期时采用的机制都不一样,都有自己的一套处理机制,所以在实际开发中将日期字段定义为DATE类型的情况很少;
C. 如果使用日期类型,java程序将不能通用。实际开发中,一般会使用“日期字符串”来表示日期;
4) 创建 t_student 表【create语句,以后详细讲】,插入含有日期的数据
以上执行成功:‘1980-01-18’虽然是一个varchar类型,但是由于格式和MySQL数据库默认的日期格式相同,所以存在自动类型转换。
以上执行失败:
A. ‘01-18-1980’日期字符串的格式和MySQL默认的格式不同;
B. ‘01-18-1980’是varchar类型,birth字段需要DATE类型,类型不匹配;
纠正以上错误:
结论:str_to_date函数通常使用在插入操作中;字段DATA类型,不接收varchar类型,需要先通过该函数将varchar变成data再插入数据。
******************* 将日期类型转换为字符串类型****************
8.1.11. data_format函数:将日期转换为特定格式字符串
作用:将‘日期类型’转换为特定格式的‘日期字符串’类型
执行结果:字符串varchar类型(具有特定格式)
用法: date_format(日期类型数据,‘日期格式’)
MySQL日期格式:
%Y:代表4位的年份
%y:代表2位的年份
%m:代表月,格式(01 … … 12)
%c:代表月,格式(1 … … 12)
%d:代表日
%H:代表小时,格式(00 … … 23)
%h:代表小时,格式(01 … … 12)
%i:代表分种,格式(00 … … 59)
%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表 时间,格式为24 小时(hh:mm:ss)
%S:代表 秒,格式为(00……59)
%s:代表 秒,格式为(00……59)
联想知识点:java中的日期格式
yyyy 年
MM 月
dd 日
HH 时
mm 分
ss 秒
SSS 毫秒
Java中将日期类型转换为字符串类型:
案例:
1) 查询员工的入职日期,以‘10-12-1980’的格式显示到窗口中;
2) 查询员工的入职日期,以‘10/12/1980’的格式显示到窗口中;
3) MySQL日期默认格式示例
以下两个DQL语句执行结果相同
第一种:hiredate自动转换成varchar类型,默认采用%Y-%m-%d格式
第二种:
结论:data_format函数主要用在数据库查询操作中。实际工作中,客户需要日期以特定格式展示的时候,需要使用该函数。