我正在开发一个项目,其中包含一个类似于此的数据库表(结构上,但不是数据方式 - 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年 - Justin bieber被发现1900世纪:
1970年 - 有人吃了芝士汉堡1500世纪:
1500年 - 哥伦布第三次访问美国
对于这个俗气的psuedodata很抱歉:)
答案 0 :(得分:2)
MySQL没有世纪功能,但确实有年份,所以你基本上做了:
SELECT whatever
FROM yourtable
WHERE ...
GROUP BY CAST((Year(datetimefield) / 100) AS INTEGER)
当然,这并没有考虑到几个世纪正式开始他们的“1”年,而不是“0”年(例如1900年仍然是18世纪,而不是19世纪)。但如果你不是精确的坚持者,简单的“除以100”方法是最快/最简单的方法。
答案 1 :(得分:1)
SELECT CAST((Year(datetimefield) / 100) AS INTEGER) as century, someotherfields
FROM yourtable
WHERE ...
ORDER BY datetimefield
我认为这是一个更好的方法。
(从Marc B借来的伪代码)