这可能是重新发布的内容,但是我找不到任何可以回答我问题的内容。我有一张桌子,上面列出的日期是435.6或5.2之类的双精度日,我需要将其转换成一个月。我试过了:

SELECT day FROM table WHERE DATE_ADD('2014-01-01', INTERVAL 31 DAY);


但是那个查询只是吐出来的一样。请帮忙。

最佳答案

编辑版本:
假设您的表名为t,十进制列名为d

select date_format(date_add('2014-01-01', interval d day),"%m") from t;


在将'2014-01-01'天添加到纪元后,应添加纪元日期(d)并将结果格式设置为数字(00-12)。对于以单词表示的月份(1月至12月),请使用"%M"here's documentation for DATE_FORMAT

here is a fiddle of the above code working for sample values

10-05 20:50
查看更多