MySQL 使用日期函数和最小最大之间选择日期

标签 mysql date between

为什么返回“2015-01-19”?:

SELECT date
FROM hours 
HAVING date BETWEEN DATE_SUB(max(date), INTERVAL 2 DAY) AND DATE_ADD(max(date), INTERVAL 1 DAY)

何时返回“2015-01-20”和“2015-01-19”?:

SELECT date 
FROM hours 
HAVING date BETWEEN '2015-01-18' AND '2015-01-21'

最大日期为“2015-01-20”,“2015-01-20”和“2015-01-19”都有记录。 date 是日期字段。

最佳答案

我想您会发现 date_sub 返回完整的时间戳,例如'2008-11-11 13:23:44.657' 参见 http://www.w3schools.com/sql/func_date_sub.asp更多细节。

您需要使用extract方法或date_format (DATE_FORMAT(date_time_var, '%Y-%m-%d') ) 获取 Between 语句中使用的日、月和年。

关于MySQL 使用日期函数和最小最大之间选择日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021352/

相关文章:

MySQL WHERE 子句自动修剪尾随空格

MySQL存储过程在参数中传递数字数组

php - 将 NULL 插入具有 Varchar 数据类型的列

java - 从 joda Duration 中减去/增加时间

php - cakephp 3 的 Between 子句

mysql - 如何查询垂直快速阅读

javascript客户端日期格式

r - 条件连接数据帧 R

Android SQLite "BETWEEN"不包含或返回所有记录

mysql - LIKE 和 BETWEEN 使用 Haxe 查询 SQL