Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在拉取一年中的每个月时,使月份显示日期名称而不是数字_Mysql_Sql_Sql Server_Date - Fatal编程技术网

Mysql 在拉取一年中的每个月时,使月份显示日期名称而不是数字

Mysql 在拉取一年中的每个月时,使月份显示日期名称而不是数字,mysql,sql,sql-server,date,Mysql,Sql,Sql Server,Date,我正在提取列出一年中每个月的数据,但“月”列说明了每年的第一天,我如何使其显示完整的月份名称? 这是我的一些东西。我读过类似的问题,试着在每一个地方添加它所说的内容,但我无法让它工作,帮帮忙 SELECT a.MonthDate ,Sum(a.ScrapPcs) / (Sum(a.GrossPcs)*1.00) As ScrapPct ,0.05 As ScrapTarget ,sum (a.GrossPcs) As 'Total Parts Cast' ,sum (a.ScrapPcs)

我正在提取列出一年中每个月的数据,但“月”列说明了每年的第一天,我如何使其显示完整的月份名称? 这是我的一些东西。我读过类似的问题,试着在每一个地方添加它所说的内容,但我无法让它工作,帮帮忙

SELECT a.MonthDate
,Sum(a.ScrapPcs) / (Sum(a.GrossPcs)*1.00) As ScrapPct
,0.05 As ScrapTarget
 ,sum (a.GrossPcs) As 'Total Parts Cast'
 ,sum (a.ScrapPcs) as 'Total Parts Scrap'

,CASE 

 WHEN Sum(a.ScrapPcs) / (Sum(a.GrossPcs)*1.00) <= 0.05 THEN 1

 WHEN Sum(a.ScrapPcs) / (Sum(a.GrossPcs)*1.00) >= 0.9*.05 THEN -1

 ELSE 0

 END 
 AS Status


FROM 
(

SELECT DATEADD(month, DATEDIFF(month, 0, b.CreationProdDate), 0) As MonthDate
      ,Count(b.BOOKING_ID) As ScrapPcs
      , 0 As GrossPcs

FROM dbo.CPC_BOOKING b

WHERE b.CreationProdDate Between DATEADD(yy, DATEDIFF(yy, 0, GetDate()), 0) AND DateAdd("d", -1, GetDate())
and CPC_BookingTyp_ID in (2,8)
and ManufacturingPlant in (90002604,90017699, 90017705)


GROUP BY DATEADD(month, DATEDIFF(month, 0, b.CreationProdDate), 0)


UNION ALL 


SELECT DATEADD(month, DATEDIFF(month, 0, n.ProductionDate), 0) As MonthDate
      ,0 As ScrapPcs
      ,Sum(n.Quantity) As GrossPcs

 FROM [NORIS].[dbo].[MDL_Data_Ultimate] n

WHERE n.ProductionDate Between DATEADD(yy, DATEDIFF(yy, 0, GetDate()), 0) AND DateAdd("d", -1, GetDate())
and n.ManufacturingPlantGroup = 1

GROUP BY DATEADD(month, DATEDIFF(month, 0, n.ProductionDate), 0)
) a


group by a.MonthDate
提前感谢,MySQL有什么帮助吗 按照该网页上的示例使用MONTHNAME函数

SELECT MONTHNAME(a.MonthDate)
对于MS SQL Server:

如果需要月份名称,请在派生表中使用:

SELECT datename(month,DATEADD(month, DATEDIFF(month, 0, b.CreationProdDate), 0)) As MonthDate

也就是说,您希望将datenamemonth、datefunction应用于两个联合查询的第一列。

MySQL或SQL Server?这不能同时是MySQL和SQL Server,因为每个查询的答案都不同,我们无法回答。请使用Date\u格式。阅读本文了解更多信息,这应该是MySQL或SQL server中的一种,因此这两种类型有不同的定义approach@bksi-实际上,编写一个在两种情况下都能工作的解决方案并不难。。。也许这就是他需要的;我想你想要datenamemonth,b.CreationProdDate是不是一样?@Hogan我不这么认为,datename dunction需要datepart和date作为参数,根据我的两个论点-但我编辑了它,你看到第一个版本了吗?@Hogan啊,是的,我看到了第一个版本我的观点是第一列是一些花哨的代码来获取月的第一天,你不需要datename函数谢谢,我读过类似的东西,但直到你的回答没有问题,我才知道应该把它放在哪里,请随意接受我最正确的答案:——@johnmithell——或者至少是在他使用的平台上赢得50%彩票的人。