MySQL允许我们对日期时间类型例如DATE、TIME、DATETIME、TIMESTAMP等数据进行格式转换,有时我们需要将日期时间类型转换为Unix时间戳,本文将教你如何实现MySQL中将日期时间转换为时间戳的需求。
MySQL中提供了很多用来处理日期类数据的函数,在转换为时间戳的时候,可以使用UNIX_TIMESTAMP()函数,该函数可以将指定的DATE、TIME、DATETIME、TIMESTAMP日期时间数据类型转换为时间戳格式。例如,我们想要将数据库表中的日期时间转换为时间戳,可以使用以下代码:
SELECT UNIX_TIMESTAMP(date_time_column) FROM table_name;
上面的代码将date_time_column字段的值转换为时间戳格式。我们依然可以指定一个指定的日期值作为参数来替代数据库表的字段名称,这时候,UNIX_TIMESTAMP()函数的用法将会变成如下形式:
SELECT UNIX_TIMESTAMP('2020-08-11 22:33:55')
此时UNIX_TIMESTAMP()函数会返回该字符串日期时间的时间戳值。
另外,MySQL还提供了FROM_UNIXTIME()函数,该函数可以将时间戳格式的数据转换为任意指定的日期时间格式。例如,我们想要将当前Unix时间戳(1597262836)转换为指定格式的日期时间,可以使用以下代码:
SELECT FROM_UNIXTIME(1597262836, '%Y-%m-%d %H:%i:%s')
MySQL提供了两个函数,UNIX_TIMESTAMP()和FROM_UNIXTIME(),帮助我们可以实现日期时间与时间戳之间的相互转换。UNIX_TIMESTAMP()可以将指定的DATE、TIME、DATETIME、TIMESTAMP日期时间数据类型转换为时间戳格式(Unix Timestamp),FROM_UNIXTIME()则可以将时间戳格式的数据转换为任意指定的日期时间格式。