一、日期/时间类型转换成字符串类型
- date_format(date,format):日期转字符串
select date_format('2008-08-08 08:08:08', '%Y%m%d%H%i%s');

- time_format(time,format):时间转字符串
select time_format('08:08:08', '%H%i%s');
二、字符串类型转换成日期/时间类型
- str_to_date(str, format):
select str_to_date('18/08/08' , '%y/%m/%d'); -- 2018-08-08

select str_to_date('2018/08/08', '%Y/%m/%d'); -- 2018-08-08

select str_to_date('08:08:08', '%h:%i:%s'); -- 08:08:08

select str_to_date('2018.08.08 08:08:08', '%Y.%m.%d %h:%i:%s'); -- 2018-08-08 08:08:08

select str_to_date('2018-08-08 08:08:08', '%Y-%m-%d %H:%i:%s'); -- 2018-08-08 08:08:08

三、转换可使用的格式
| 格式 | 描述 |
|---|---|
| %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) |
| %p | AM 或 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 位 |

本文介绍了如何在数据库中将日期时间类型与字符串类型相互转换的方法。包括使用date_format和time_format函数将日期时间转换为字符串,以及使用str_to_date函数将字符串转换为日期时间。此外还列举了各种日期时间格式的含义。
1293





