MariaDB STR_TO_DATE() 函数的基础用法与实例
MariaDB STR_TO_DATE()
函数用来根据指定的格式将字符串转换为日期时间类型。
MariaDB STR_TO_DATE()
函数用来根据指定的格式将字符串转换为日期时间类型。它通常用于将字符串形式的日期和时间值转换为适合存储在日期/时间数据类型列中的格式。此函数在处理非标准日期格式或来自不同区域的日期时非常有用。
语法
MairaDB STR_TO_DATE()
函数的语法如下:
STR_TO_DATE(str, format)
str
:要转换的字符串。format
:描述字符串str
格式的字符串。
该函数返回一个 DATETIME
值,如果任何参数是 NULL
,则返回 NULL
。如果格式字符串不合法或者字符串值无法与格式匹配,则返回 NULL
。
实例
将字符串转换为日期时间格式
本实例将展示如何使用 STR_TO_DATE()
函数将字符串 '2023-03-14 12:34:56'
转换为日期时间格式。
SELECT STR_TO_DATE('2023-03-14 12:34:56', '%Y-%m-%d %H:%i:%s');
以下是该语句的输出:
+---------------------------------------------------------+
| STR_TO_DATE('2023-03-14 12:34:56', '%Y-%m-%d %H:%i:%s') |
+---------------------------------------------------------+
| 2023-03-14 12:34:56 |
+---------------------------------------------------------+
该示例使用格式字符串 '%Y-%m-%d %H:%i:%s'
指定输入字符串的格式,其中 %Y
表示四位数年份,%m
表示两位数月份,等等。
处理不同区域的日期格式
本实例将展示如何使用 STR_TO_DATE()
函数处理不同区域的日期格式。
DROP TABLE IF EXISTS dates;
CREATE TABLE dates (date_string VARCHAR(20));
INSERT INTO dates VALUES
('03/14/2023'), ('14/03/2023');
SELECT
date_string,
STR_TO_DATE(date_string, '%m/%d/%Y') AS us_format,
STR_TO_DATE(date_string, '%d/%m/%Y') AS uk_format
FROM dates;
以下是该语句的输出:
+-------------+------------+------------+
| date_string | us_format | uk_format |
+-------------+------------+------------+
| 03/14/2023 | 2023-03-14 | NULL |
| 14/03/2023 | NULL | 2023-03-14 |
+-------------+------------+------------+
在这个示例中,我们创建了一个名为 dates
的表,其中包含一个 date_string
列。然后,我们插入了两个日期字符串,一个采用美国格式(月/日/年),另一个采用英国格式(日/月/年)。我们使用 STR_TO_DATE()
函数将这些日期字符串转换为 DATE
值,并分别指定了美国和英国的格式字符串。
处理不同的时间格式
本实例将展示如何使用 STR_TO_DATE()
函数处理不同的时间格式。
DROP TABLE IF EXISTS times;
CREATE TABLE times (time_string VARCHAR(20));
INSERT INTO times VALUES
('12:34:56 PM'), ('2:34:56 AM');
SELECT
time_string,
STR_TO_DATE(CONCAT('2023-03-14 ', time_string), '%Y-%m-%d %h:%i:%s %p') AS time_value
FROM times;
以下是该语句的输出:
+-------------+---------------------+
| time_string | time_value |
+-------------+---------------------+
| 12:34:56 PM | 2023-03-14 12:34:56 |
| 2:34:56 AM | 2023-03-14 02:34:56 |
+-------------+---------------------+
在这个示例中,我们创建了一个名为 times
的表,其中包含一个 time_string
列。然后,我们插入了两个不同格式的时间字符串。我们使用 STR_TO_DATE()
函数将这些时间字符串转换为 DATETIME
值,并指定了格式字符串 '%Y-%m-%d %h:%i:%s %p'
,其中 %h
表示 12 小时制时间,%p
表示 AM/PM。我们还使用 CONCAT()
函数将日期和时间字符串合并为一个字符串。
相关函数
以下是几个与 MairaDB STR_TO_DATE()
相关的几个函数:
- MariaDB
DATE_FORMAT()
函数用来将日期时间值格式化为字符串。 - MariaDB
DATE()
函数用来提取日期时间值中的日期部分。 - MariaDB
TIME()
函数用来提取日期时间值中的时间部分。 - MariaDB
TIMESTAMP()
函数用来返回当前的日期和时间。
结论
MariaDB STR_TO_DATE()
函数是一个非常有用的函数,可以将字符串转换为日期时间类型。它支持各种不同的日期和时间格式,使得处理来自不同区域或系统的数据变得更加方便。通过合理使用格式字符串,我们可以灵活地解析各种形式的日期和时间字符串。同时,与此函数相关的其他函数也为日期和时间的处理提供了更多选择。