MySQL中str_to_date函数和cast函数
MySQL怎么将字符串转为datetime类型?两种转换方法:1、使用str_to_date()函数,可以格式化字符串,根据指定格式将其转为日期时间值,语法“str_to_date(字符串值, 转换格式)”。2、使用CAST()函数,可以将指定字符串值转换为datetime数据类型,语法“CAST(字符串值 AS datetime)”。
MySQL DATETIME 类型
DATETIME 类型用于需要同时包含日期和时间信息的值,在存储时需要 8 个字节。日期格式为 'YYYY-MM-DD HH:MM:SS',其中 YYYY 表示年,MM 表示月,DD 表示日,HH 表示小时,MM 表示分钟,SS 表示秒。
MySQL将字符串转为datetime类型的方法
方法1:使用str_to_date()函数
str_to_date()是专门的字符串转日期函数,可以将字符串转换为日期时间值。
- str_to_date(str, format)
str: 必须项。要格式化为日期的字符串
format: 必须项。要使用的格式。可以是以下值中的一个或组合:
format格式 | 描述 |
---|---|
%a | 工作日缩写名称(周日至周六) |
%b | 缩写的月份名称(1月至12月) |
%C | 数字月份名称(0到12) |
%D | 作为数值的月中的某一天,后跟后缀(第1,第2,第3,......) |
%d | 作为数值的月份日期(01到31) |
%e | 每月的某一天作为数值(0到31) |
%f | 微秒(000000至999999) |
%H | 小时(00到23) |
%h | 小时(00到12) |
%I | 小时(00到12) |
%i | 分钟(00至59) |
%j | 一年中的某一天(001至366) |
%k | 小时(0到23) |
%l | 小时(1到12) |
%M | 月份名称(1月至12月) |
%m | 月份名称作为数值(00到12) |
%p | 上午或下午 |
%r | 时间为12小时AM或PM格式(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 | 星期日是一周的第一天的一周。与%V一起使用 |
%x | 星期一是一周的第一天的一周。与%V一起使用 |
%Y | 年份为数字,4位数值 |
%y | 年份为数字,2位数值 |
STR_TO_DATE()函数扫描输入字符串来匹配格式字符串。格式字符串可能包含以百分比(%)字符开头的文字字符和格式说明符。
实例:
-
SELECT STR_TO_DATE('21,5,2022','%d,%m,%Y');
-
SELECT STR_TO_DATE("2022,6,14 10,40,10", "%Y,%m,%d %h,%i,%s");
方法2: 使用CAST() 函数
CAST() 函数用于类型转换,将(任何类型的)值转换为指定的数据类型。
将字符串转为datetime类型的语法
- CAST(字符串值 AS datetime)
示例:
- SELECT CAST("2008.08.09 08:09:30" AS DATETIME);