MySQL字符转换成日期
在MySQL中,可以使用日期和时间函数将字符转换成日期格式。这对于将存储为字符串的日期数据转换为日期类型非常有用。本文将介绍一些常用的MySQL日期函数和示例,帮助您更好地理解如何将字符转换成日期。
1. STR_TO_DATE函数
STR_TO_DATE
函数用于将指定格式的字符转换为日期。它接受两个参数,第一个参数是要转换的字符串,第二个参数是日期的格式。下表列出了一些常用的日期格式符号:
格式符号 | 说明 |
---|---|
%Y | 四位年份 |
%y | 两位年份 |
%m | 月份(01-12) |
%c | 月份(1-12) |
%d | 天(01-31) |
%H | 小时(00-23) |
%h | 小时(01-12) |
%i | 分钟(00-59) |
%s | 秒(00-59) |
%p | AM或PM |
%W | 星期的完整英文名 |
%w | 星期的数字表示(0-6) |
%M | 月份的完整英文名 |
%b | 月份的简写英文名 |
以下是一个示例,将字符"2022-01-01"转换为日期:
SELECT STR_TO_DATE('2022-01-01', '%Y-%m-%d');
输出结果为:2022-01-01
2. DATE_FORMAT函数
与STR_TO_DATE
相反,DATE_FORMAT
函数用于将日期转换为指定格式的字符。它接受两个参数,第一个参数是日期,第二个参数是日期的格式。以下是一些示例:
SELECT DATE_FORMAT('2022-01-01', '%Y-%m-%d');
输出结果为:2022-01-01
SELECT DATE_FORMAT('2022-01-01', '%W, %M %e, %Y');
输出结果为:Saturday, January 1, 2022
3. CAST函数
CAST
函数用于将一个数据类型转换为另一个数据类型。在将字符转换为日期时,可以使用CAST
函数将字符转换为日期数据类型。
以下是一个示例,将字符"2022-01-01"转换为日期:
SELECT CAST('2022-01-01' AS DATE);
输出结果为:2022-01-01
4. UNIX_TIMESTAMP函数
UNIX_TIMESTAMP
函数用于将日期转换为UNIX时间戳,即从1970年1月1日起的秒数。可以使用FROM_UNIXTIME
函数将UNIX时间戳转换回日期。
以下是一个示例,将日期"2022-01-01"转换为UNIX时间戳:
SELECT UNIX_TIMESTAMP('2022-01-01');
输出结果为:1640995200
SELECT FROM_UNIXTIME(1640995200);
输出结果为:2022-01-01 00:00:00
5. 示例代码
下面是一个完整的示例代码,演示如何将字符转换成日期:
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
date_str VARCHAR(10),
date_val DATE
);
INSERT INTO example (date_str) VALUES ('2022-01-01');
UPDATE example SET date_val = STR_TO_DATE(date_str, '%Y-%m-%d');
SELECT * FROM example;
创建了一个名为example
的表,包含一个id
列作为主键,一个date_str
列存储日期字符,一个date_val
列存储日期值。插入一条数据后,使用STR_TO_DATE
函数将date_str
转换为日期,并更新date_val
列的值。最后,查询表中的所有数据。
输出结果为:
id | date_str | date_val |
---|---|---|
1 | 2022-01-01 | 2022-01-01 |
以上示例演示了如何将字符串转换为日期,并存储在日期类型的列中。
6. 总结
在本文中,我们介绍了几个常用的MySQL日期函数,用于将