Php 将MonthNAME和Number添加到mysql查询

Php 将MonthNAME和Number添加到mysql查询,php,mysql,Php,Mysql,我正在运行以下查询,但问题是我需要将月份名称和编号添加到表中的字段名MONTHOFSERVICE中,因此输入必须显示为:05 May 现在我刚得到一个月的名字 我的代码看起来像 INSERT INTO clientdocumentation (clientid, DocumentName, Monthofservice,Year, providertype, cname) SELECT clients.clientid, DocumentName, MONTHNAME(NOW()- INTERV

我正在运行以下查询,但问题是我需要将月份名称和编号添加到表中的字段名MONTHOFSERVICE中,因此输入必须显示为:05 May

现在我刚得到一个月的名字

我的代码看起来像

INSERT INTO clientdocumentation (clientid, DocumentName, Monthofservice,Year, providertype, cname)
SELECT clients.clientid, DocumentName, MONTHNAME(NOW()- INTERVAL 1 MONTH), YEAR(now()), providertype, CONCAT_WS(', ', LastName, Name) AS cname FROM clients, client_docs_templates
END


谢谢

您可以使用简单的字符串连接和月函数来实现这一点

首先,这会输出一个月数,即5:

根据您的示例,假设您想要两位数的月份,即05。这会将前导0与月份号连接起来,然后取最右边的两位数字:

SELECT RIGHT(CONCAT('0', MONTH(NOW())), 2)
现在将其与空格和月份名称连接起来:

SELECT CONCAT(RIGHT(CONCAT('0', MONTH(NOW())), 2), ' ', MONTHNAME(NOW()))
产出:

05 May
04 April
注意:我在示例中看到,您减去了1个月,因此是4月,而不是5月。下面的示例显示了减去1个月后的情况:

SELECT CONCAT(RIGHT(CONCAT('0', MONTH(NOW() - INTERVAL 1 MONTH)), 2), ' ', MONTHNAME(NOW() - INTERVAL 1 MONTH));
产出:

05 May
04 April

你要问的问题是


谢谢大家的帮助,最后的代码是

SELECT clients.clientid, DocumentName, CONCAT( DATE_FORMAT(NOW()- INTERVAL 1 MONTH,"%m")," ",MONTHNAME(NOW()- INTERVAL 1 MONTH)) , YEAR(now()), providertype, CONCAT_WS(', ', LastName, Name) AS cname FROM clients, client_docs_templates
END

尝试在插入时打印您的查询,并显示您正在谈论的数字的输出?我使用这种方式,但不工作显示错误插入到客户端文档clientid、DocumentName、Monthofservice、Year、providertype、cname SELECT Client.clientid、DocumentName、CONCATRIGHTCONCAT'0',MONTHNOW、2',MONTHNAMENOW-间隔1个月,providertype,CONCAT_WS',,LastName,Name AS cname FROM clients,client_docs_templates end如果运行代码CONCATRIGHTCONCAT'0',MONTHNOW,2',MONTHNAMENOW-间隔1个月,您将看到它执行。错误在语句中的其他位置事实上,您的select no YEAR中有6列insert,只有5列。这可能就是为什么这不起作用的原因…OP询问的是月份名称和编号,而不是日期…他没有指定要哪个编号afaiki运行以下查询,但问题是我需要添加月份名称和编号。很清楚你要的是什么,把它写成月名和月号,但他写了月名和月号,所以没想到会写成月号
INSERT INTO clientdocumentation (clientid, DocumentName, Monthofservice,Year, providertype, cname)
SELECT clients.clientid, DocumentName, CONCAT( DATE_FORMAT(NOW()- INTERVAL 1 MONTH,"%m")," ",MONTHNAME(NOW()- INTERVAL 1 MONTH)) , YEAR(now()), providertype, CONCAT_WS(', ', LastName, Name) AS cname FROM clients, client_docs_templates
SELECT clients.clientid, DocumentName, CONCAT( DATE_FORMAT(NOW()- INTERVAL 1 MONTH,"%m")," ",MONTHNAME(NOW()- INTERVAL 1 MONTH)) , YEAR(now()), providertype, CONCAT_WS(', ', LastName, Name) AS cname FROM clients, client_docs_templates
END