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日期函数,用于将