我正在研究一个项目,其中有一个数据库表如下所示(结构上,但不是数据方面的-puuh):

year    |  event                               |    category
------------------------------------------------------------
1970    |  Someone ate a cheeseburger          |   food
2010    |  Justin bieber was discovered        |   other
1500    |  Columbus makes 3rd trip to America  |   notable
------------------------------------------------------------

如何查询此表,以便以每世纪的方式对结果进行分组?
2000世纪:
2010年-贾斯汀·比伯被发现
1900世纪:
1970年-有人吃了一个芝士汉堡
1500世纪:
1500年的今天,哥伦布第三次来到美洲
抱歉,这是一个不起眼的假数据:)

最佳答案

MySQL没有百年功能,但是有一年,所以基本上是:

SELECT whatever
FROM yourtable
WHERE ...
GROUP BY CAST((Year(datetimefield) / 100) AS INTEGER)

当然,这并没有考虑到几个世纪是从“1”年开始,而不是从“0”年开始(例如1900年仍然是18世纪,而不是19世纪)。但是,如果你不是一个坚持精确的人,简单的“除以100”方法是最快/最简单的。

10-07 19:54