MySQL:仅显示三月内的日期

标签 mysql

我想显示三月内的日期,但不太明白。

这是表格...

这是我当前的代码...

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';

我做错了什么?

最佳答案

您正在比较 TIMESTAMPDATETIME 因此您不能只在比较中使用日期,您还需要提供时间。

注意,在比较之前,类型被转换为匹配列类型。查看此查询以获取说明:

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/

相关文章:

php - symfony 3.4 FirewallListener 缓慢/阻塞

mysql - 编写使用派生列和多个联接的 MySQL 查询的正确方法

php - SQL:获取具有相同ID的所有列记录

php - 对多列求和,但在 mysql 查询中有一个列

mysql 处理树

mysql - 使用日期范围和连接优化 MySQL 查询

php拍卖采用相同时间提交的同等出价

java - ListArray 保存相同的记录

MySql 查询按时间分组

php - 使用 Ajax 和 mysql 检索数据