mySQL:查询按世纪分组的与时间相关的行?

标签 mysql time rdbms

我正在做一个项目,它有一个看起来像这样的数据库表(结构上,但不是数据上的 - 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-century:
2010 - Justin bieber was discovered

1900-century:
1970 - Someone ate a cheeseburger

1500-century:
1500 - Columbus makes 3rd trip to America

对于俗气的伪数据感到抱歉:)

最佳答案

MySQL 没有世纪函数,但它有年份,所以您基本上可以这样做:

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

当然,这没有考虑到世纪正式从“1”年开始,而不是从“0”年开始(例如,1900 年仍然是 18 世纪,而不是 19 世纪)。但是,如果您不追求精确,简单的“除以 100”方法是最快/最简单的。

关于mySQL:查询按世纪分组的与时间相关的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4937702/

相关文章:

php - SELECT 查询的 PDO 语法错误

php - Array_push 只从 sql 查询中给出一个值?

Java日期和时间转换

C - 以微秒精度在几秒钟内为我的程序计时

mysql - 能否建议大型关系数据分析器的解决方案?

python - 使用带有 sqlalchemy 的 gin 索引返回排名搜索结果

ms-access - Ms Access DBMS 还是 RDBMS?

php - 制作一个包含数据库元素的复选框形式?

Mysql查询显示年龄超过特定年龄的人

java - DateFormat 或 Calender.getInstance 有时会返回随机值