mysql - SQL 从时间戳按年月排序
问题描述
我有一个带有两个时间戳的表(created_at,confirmed_at)
我想按 created_at 的年份和月份对结果进行排序,并在月份内通过以下方式对结果进行排序:
数据:
created_at, confirmed_at
2018-12-23, 2018-12-06
2018-12-15, 2019-01-20
2019-01-08, 2019-01-11
2019-01-12, 2019-01-13
结果:
created_at, confirmed_at
2019-01, 2019-01-13
2019-01, 2019-01-11
2018-12, 2019-01-20
2018-12, 2018-12-06
如何使用时间戳按 YYYY-mm 排序(以及如何使其快速 -> 如何为该查询编制索引?)
解决方案
使用 year() 和 month() 函数:
select
year(created_at) created_year,
month(created_at) created_month,
confirmed_at
from t
order by created_year, created_month, confirmed_at
或者如果你只想要 YYYY-MM 部分:
select DATE_FORMAT(created_at, "%Y-%m"), confirmed_at from t
order by year(created_at), month(created_at), confirmed_at
或者:
select DATE_FORMAT(created_at, "%Y-%m") created, confirmed_at from t
order by created, confirmed_at
或者:
select DATE_FORMAT(created_at, "%Y-%m") created, confirmed_at from t
order by EXTRACT(YEAR_MONTH FROM created_at), confirmed_at
推荐阅读
- javascript - 简而言之,如何实例化作为参数给出的不同函数
- delphi - 有没有办法在不包括原始文件的目录结构的情况下创建 TZipfile?
- hyperlink - 在雪花表字段中嵌入超链接
- html - flexbox中的大型primeng组件屠夫css
- arrays - char数组C末尾的奇怪字符
- python - TypeError:“系列”对象是可变的,因此它们不能被散列来修改和转换成数据框的 excel 文件
- javascript - 未捕获的 SyntaxError:Inline JS 上的标记无效或意外。JS脚本在浏览器上中断
- python - 用于数据科学的 Python 中使用的标准、稳定的文件格式是什么?
- javascript - 关于 JavaScript 中的箭头函数
- javascript - 如何根据内容量动态调整固定 div 中的文本大小?