MySQL中str_to_date函数和cast函数

发布时间 2023-06-22 19:55:14作者: 哩个啷个波

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()是专门的字符串转日期函数,可以将字符串转换为日期时间值。

  1. 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()函数扫描输入字符串来匹配格式字符串。格式字符串可能包含以百分比(%)字符开头的文字字符和格式说明符。

实例:

  1. SELECT STR_TO_DATE('21,5,2022','%d,%m,%Y');

  2. image-20230105162634486

  3. SELECT STR_TO_DATE("2022,6,14 10,40,10", "%Y,%m,%d %h,%i,%s");

image-20230105162604162

方法2: 使用CAST() 函数

CAST() 函数用于类型转换,将(任何类型的)值转换为指定的数据类型。

将字符串转为datetime类型的语法

  1. CAST(字符串值 AS datetime)

示例:

  1. SELECT CAST("2008.08.09 08:09:30" AS DATETIME);

image-20230105162552069