首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在按月分组日期时将一个月从INT转换为VARCHAR

如何在按月分组日期时将一个月从INT转换为VARCHAR
EN

Stack Overflow用户
提问于 2019-04-28 20:37:20
回答 3查看 151关注 0票数 0

我需要以一种可读的方式总结这些年来每个月的面试次数。

代码语言:javascript
复制
SELECT month(i.Date) AS Month, Year(i.Date) AS Year, Count(i.Id) AS' Number of Interviews'
FROM Interviews i
GROUP BY month(i.Date), year(i.Date)
ORDER BY year(i.Date) DESC, month(Date) ASC

我希望查询以VARCHAR的形式返回月份,类似于‘一月’,而不是从‘月份’函数中返回默认的INT。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-28 20:58:07

对于MySql,应该是:

代码语言:javascript
复制
SELECT 
  monthname(i.Date) AS Month, 
  Year(i.Date) AS Year, 
  Count(i.Id) AS `Number of Interviews`
FROM Interviews i
GROUP BY month(i.Date), monthname(i.Date), year(i.Date)
ORDER BY year(i.Date) DESC, month(i.Date) ASC

对于 Server

代码语言:javascript
复制
SELECT 
  datename(month, i.date) AS Month, 
  Year(i.Date) AS Year, 
  Count(i.Id) AS [Number of Interviews]
FROM Interviews i
GROUP BY month(i.Date), datename(month, i.date), year(i.Date)
ORDER BY year(i.Date) DESC, month(i.Date) ASC
票数 1
EN

Stack Overflow用户

发布于 2019-04-28 20:48:25

一个适用于大多数DBMS的解决方案是一个CASE表达式。

代码语言:javascript
复制
SELECT CASE month(i.date)
         WHEN 1 THEN
           'January'
         ...
         WHEN 12 THEN
           'December'
       END month,
       year(i.date) year,
       count(i.id) number_of_interviews
       FROM interviews i
       GROUP BY month(i.date),
                year(i.date)
       ORDER BY year(i.date) DESC,
                month(i.date) ASC;
票数 0
EN

Stack Overflow用户

发布于 2019-04-30 00:13:21

代码语言:javascript
复制
SELECT count(1), format(dateColumn, 'yyyy-MM')
FROM tableName
GROUP BY format(dateColumn, 'yyyy-MM')
ORDER BY 2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55894376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档