我想仅显示三月内的日期,但不太明白。
这是表格...
这是我当前的代码...
SELECT billing.charged_datetime-- SUM(billing.amount) AS total_revenue
FROM lead_gen_business.billing;
WHERE billing.charged_datetime BETWEEN '2012-03-01' AND '2012-03-30';
我做错了什么?
最佳答案
您正在比较 TIMESTAMP
或 DATETIME
因此您不能只在比较中使用日期,您还需要提供时间。
注意,在比较之前,类型被转换为匹配列类型。查看此查询以获取说明:
SELECT CAST('2015-10-18' AS DATETIME)
因此,一种选择是使用如下条件(假设数据类型中没有小数):
WHERE billing.charged_datetime BETWEEN '2012-03-01' AND '2012-03-30 23:59:59'
最好的(可读的)选择是将条件更改为:
WHERE MONTH(charged_datetime) = 3 AND YEAR(charged_datetime) = 2012
https://dev.mysql.com/doc/refman/5.0/en/type-conversion.html
在看到您对其他答案的评论后进行编辑。这是您要找的东西吗?
SELECT DATE(billing.charged_datetime)
FROM lead_gen_business.billing
WHERE MONTH(billing.charged_datetime) = 3 AND YEAR(billing.charged_datetime) = 2012;
关于MySQL:仅显示三月内的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33335580/