我希望在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 函数,但无法看到如何在此实例中应用它
答案 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
希望有所帮助!