1. MySQL中FROM_UNIXTIME()函数
在MySQL数据库中,FROM_UNIXTIME()函数被用于将Unix时间戳转换为指定的时间格式。Unix时间戳是从1970年1月1日00:00:00 UTC到当前时间的秒数。FROM_UNIXTIME()函数的语法如下:
FROM_UNIXTIME(unix_timestamp, format)
其中,unix_timestamp 是一个包含Unix时间戳的表达式,format是一个用于指定日期/时间格式的字符。
2. 使用FROM_UNIXTIME()函数将Unix时间戳转换为日期格式
使用FROM_UNIXTIME()函数将Unix时间戳转换为日期格式的例子如下:
SELECT FROM_UNIXTIME(1609459200, '%Y-%m-%d') AS date;
在这个例子中,我们将Unix时间戳1609459200转换为2021年1月1日的日期格式(YYYY-MM-DD)。结果如下:
结果:date2021-01-01
这里我们使用了%Y-%m-%d格式控制符来指定日期格式。%Y表示4位数的年份,%m表示月份,%d表示日期。
3. 使用FROM_UNIXTIME()函数将Unix时间戳转换为时间格式
使用FROM_UNIXTIME()函数将Unix时间戳转换为时间格式的例子如下:
SELECT FROM_UNIXTIME(1609459200, '%H:%i:%s') AS time;
在这个例子中,我们将Unix时间戳1609459200转换为00:00:00的时间格式。结果如下:
结果:time00:00:00
这里我们使用了%H:%i:%s格式控制符来指定时间格式。%H表示小时(00-23),%i表示分钟,%s表示秒。
4. 使用FROM_UNIXTIME()函数将Unix时间戳转换为日期时间格式
使用FROM_UNIXTIME()函数将Unix时间戳转换为日期时间格式的例子如下:
SELECT FROM_UNIXTIME(1609459200, '%Y-%m-%d %H:%i:%s') AS datetime;
在这个例子中,我们将Unix时间戳1609459200转换为2021年1月1日 00:00:00的日期时间格式。结果如下:
结果:datetime2021-01-01 00:00:00
这里我们使用了%Y-%m-%d %H:%i:%s格式控制符来指定日期时间格式。%Y表示4位数的年份,%m表示月份,%d表示日期,%H表示小时(00-23),%i表示分钟,%s表示秒。
5. 使用带有格式字符串的FROM_UNIXTIME()函数
在MySQL中,我们可以使用带有格式字符串的FROM_UNIXTIME()函数来将时间戳转换为指定格式的日期和时间。下面的例子演示了如何使用FROM_UNIXTIME()函数和格式字符串将时间戳转换为指定格式的日期和时间:
SELECT FROM_UNIXTIME(1609459200, '%W %M %d, %Y @ %h:%i:%s %p') AS datetime;
在这个例子中,我们使用了带有格式字符串的FROM_UNIXTIME()函数将Unix时间戳1609459200转换为星期五一月01,2021 @ 12:00:00 AM的日期时间格式。结果如下:
结果:datetimeFriday January 01, 2021 @ 12:00:00 AM
在上述代码中,我们使用了格式字符串来指定日期时间格式。其中,%W表示星期几的完整名称,%M表示月份的完整名称,%d表示日期,%Y表示年份,%h表示12小时制的小时数,%i表示分钟,%s表示秒,%p表示小写的am或pm。
6. 注意事项
当使用FROM_UNIXTIME()函数将Unix时间戳转换为日期和时间时,需要注意以下事项:
- Unix时间戳以秒为单位计算。
- 所有时间和日期都遵循MySQL服务器所在的时区。
- 如果格式字符串不正确,则会返回NULL值。
7. 小结
FROM_UNIXTIME()函数是MySQL数据库中的一个强大的日期和时间函数,可将Unix时间戳转换为指定的日期和时间格式。在使用这个函数时,需要注意Unix时间戳以秒为单位计算,并且所有时间和日期都遵循MySQL服务器所在的时区。使用正确的格式字符串可以将Unix时间戳转换为任何所需的日期和时间格式。