将所有相同的年份和月份日期合并到php中的一个字符串中

时间:2017-03-21 01:45:52

标签: mysql sql date time

您好,我可以帮助我们,我希望按年份和月份将所有相同的日期显示为一个字符串。

<property expression="json-eval(json-eval($.key)" name="isDataFound"
        scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
  <filter xmlns:ns="http://org.apache.synapse/xsd" xpath="string-length($ctx:isDataFound)>0">
        <then/>

<else/>
</filter>

4 个答案:

答案 0 :(得分:0)

连接年份和月份

select CONCAT(year(date_issued), month(date_issued)) as yearmonth from ....

答案 1 :(得分:0)

Query:

SELECT 
CONCAT(
    CASE MONTH(date_issued)
        WHEN 1 THEN 'January'
        WHEN 2 THEN 'February'
        WHEN 3 THEN 'March'
        WHEN 4 THEN 'April'
        WHEN 5 THEN 'May'
        WHEN 6 THEN 'June'
        WHEN 7 THEN 'July'
        WHEN 8 THEN 'August'
        WHEN 9 THEN 'September'
        WHEN 10 THEN 'October'
        WHEN 11 THEN 'November'
        WHEN 12 THEN 'December'
    END
,' ',
YEAR(date_issued)
) AS DATE FROM my_table ORDER BY date_issued ASC
  

MySQL CONCAT()函数用于添加两个或更多字符串。

     

•可能有一个或多个参数。 •返回该字符串   连接参数的结果。 •返回非二进制   string,如果所有参数都是非二进制字符串。 •返回二进制文件   string,如果参数包含任何二进制字符串。 •如果参数   是数字,它被转换为其等效的非二进制字符串形式。 •   如果任何参数为NULL,则返回NULL。

来源:http://www.w3resource.com/mysql/string-functions/mysql-concat-function.php

答案 2 :(得分:0)

我们可以进一步简化它,因为mysql具有为我们获取月份名称的功能,并且我一直都在使用它。

SELECT CONCAT_WS(' ', MONTHNAME(date_issued), YEAR(date_issued)) from your_table;

WS部分仅表示分隔符,因此我们可以将连接的字符串分隔符声明为第一个参数。连接多个字段时非常方便。

<强>更新

我也很难理解这个问题,但是如果您尝试按年份和月份对数据进行分组,则可以将分组添加到上面的查询结尾,然后添加一些SUMCOUNT个运算符获取该月数据的摘要,例如

SELECT 
    CONCAT_WS(' ', MONTHNAME(date_issued), YEAR(date_issued)) as 'Date',
    SUM(numeric_field) as 'total volume of my numeric field',
    COUNT(id) as 'total count of my table data',
 FROM your_table
 GROUP YEAR(date_issued), MONTH(year_issued)
 ORDER BY (date_issued);

答案 3 :(得分:0)

我们可以使用MySQL DATE_FORMAT函数将DATE值转换为指定格式的字符串表示形式。按照&#34; date&#34;值,我们可以使用STR_TO_DATE函数将这些字符串转换回DATE数据类型。

我们想要一个明确的&#34;月YYYY&#34;值。我们可以使用GROUP BY子句来折叠行。

举个例子:

 SELECT DATE_FORMAT(t.date_issued,'%M %Y') AS `**ARCHIVE MENU**`
   FROM mytable t
  GROUP BY DATE_FORMAT(t.date_issued,'%M %Y')
  ORDER BY STR_TO_DATE(DATE_FORMAT(t.date_issued,'%M %Y'),'%Y-%m-01') ASC     

-

这只是一个猜测,它并不完全清楚你想要实现的目标。