date_format(FROM_UNIXTIME(UNIX_TIMESTAMP('20230529', 'yyyyMMdd'), 'yyyy-MM-dd'),'yyyy-MM-dd')为什么返回null?
时间: 2023-08-09 14:08:53 浏览: 110
时间__DATE__字符串转化为YYMMDD格式
5星 · 资源好评率100%
函数`FROM_UNIXTIME()`需要的是 Unix 时间戳,而你传递的参数是一个字符串。因此,需要先将字符串转换为 Unix 时间戳。如果你传递的是一个八位数字的字符串,可以使用`UNIX_TIMESTAMP()`函数将其转换为 Unix 时间戳。但是,`UNIX_TIMESTAMP()`函数默认使用当前时区,如果你的 MySQL 服务器和你的本地时区不同,结果可能不正确。因此,最好使用`STR_TO_DATE()`函数将字符串转换为日期,然后使用`UNIX_TIMESTAMP()`函数将其转换为 Unix 时间戳。最终的 SQL 语句应该类似于这样:
```
SELECT DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('20230529', '%Y%m%d'))), '%Y-%m-%d') AS date;
```
这样应该就可以得到正确的结果了。
阅读全文