修改SQL查询中的日期格式

时间:2014-12-02 12:33:29

标签: mysql sql date

我希望在mysql数据库上修改这个SQL查询..

SELECT *, COUNT(*) as TotalValueCount 
    FROM
    wp_rg_lead
    INNER JOIN wp_rg_lead_detail ON
    wp_rg_lead.id=wp_rg_lead_detail.lead_id
    WHERE wp_rg_lead.form_id = '47'
    AND  cast(date_created as date) >= current_date - interval '7' day
    AND field_number = '18'
    GROUP BY value,date_created

因此' current_date' 格式不是' 2014-11-12 20:34:12' 只返回日期而不是显示时间。我查看过 FORMAT 函数,但无法看到如何在此实例中应用它

3 个答案:

答案 0 :(得分:1)

我怀疑日期算术没有做你想要的。你可以尝试:

cast(date_created as date) >= date_sub(current_date, interval 7 day);

编辑:

如果您确实需要当前日期/时间的时间部分,请使用now()CURRENT_TIMESTAMP

cast(date_created as date) >= date_sub(now(), interval 7 day);

答案 1 :(得分:0)

您可以将current_date包装在date()函数中:

即。 date(current_date),这将从任何日期时间中提取日期并对此进行计算。

答案 2 :(得分:0)

你选择了我的朋友默认给定列名的每一列(*)。如果要更改特定列的输出格式,则需要指定列。

以下是实现此目的的语法:

  

SELECT DATE_FORMAT(dt,'%Y-%m-%d%k:%i:%s') AS Date FROM myTableName;

因此,不要选择*,而是放置列名称并指定您要求的格式,即:

SELECT column1, DATE_FORMAT(**date_column**,'%Y-%m-%d %k:%i:%s') AS `Date` , 
COUNT(*) as TotalValueCount
    FROM
    wp_rg_lead
    INNER JOIN wp_rg_lead_detail ON
    wp_rg_lead.id=wp_rg_lead_detail.lead_id
    WHERE wp_rg_lead.form_id = '47'
    AND  cast(date_created as date) >= current_date - interval '7' day
    AND field_number = '18'
    GROUP BY value,date_created

希望有所帮助!