mysql - 如何在表格中的任意两个日期之间进行减法?

标签 mysql sql select datediff

我有一个名为“Bill”的表,它是餐厅系统数据库的表。示例数据如下:

  Bill_Code,          Date,    Customer_ID, Order_Code, Total_Amount, Discount, Payable_Amount, Payment_Type, Staff_Name   
'B201404012000', '2014-03-21', 'S8909608D', 'O222224', '0.00', '0.00', '0.00', 'CASH', 'Dany Lim'   
'B201404012030', '2014-04-01', 'S8409608D', 'O222221', '100.00', '0.00', '100.00', 'VISA', 'Arya Stark'   
'B201404012032', '2014-04-01', 'S8609608D', 'O222222', '80.00', '0.10', '72.00', 'VISA', 'Arya Stark'   
'B201404012033', '2014-04-21', 'S8709608D', 'O222223', '0.00', '0.00', '0.00', 'NETS', 'Rob Targa'   
'B201404012039', '2014-04-01', 'S8709655D', 'O222225', '0.00', '0.00', '0.00', 'MASTERCARD', 'Dany Lim'   
'B201404012053', '2014-04-15', 'S8909608D', 'O222224', '0.00', '0.00', '0.00', 'CASH', 'Dany Lim'   
'B201404012115', '2014-04-11', 'S8909608D', 'O222226', '50.00', '0.00', '50.00', 'CASH', 'Rob Targa'   

我需要找出具有相同 Customer_ID 的哪两个日期的日期间隔为 30 天。

意思是,我需要查明是否有任何特定客户在访问之间有 30 天的间隔。

感谢您的帮助。提前致谢。

最佳答案

如果您需要了解第一个订单和最后一个订单之间的日期超过 30 天的回头客,请尝试使用 GROUP BY:

SELECT Customer_ID,
       MIN(Date) as MinDate,
       MAX(Date) as MaxDate
FROM BILL
GROUP BY Customer_ID 
HAVING DATEDIFF(MAX(Date),MIN(Date))>=30

关于mysql - 如何在表格中的任意两个日期之间进行减法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192086/

相关文章:

mysql - OpenShift添加墨盒MySQL 5.5引擎InnoDB

c++ - 套接字选择减少文件描述符集中套接字的数量

mysql - 在 MySQL 中管理分层数据

MySQL游标只获取一行

c# - C#中嵌套SQL的理解

php - 从数据库中选择(从今天)差异最小的日期

sql - PostgreSQL:根据数组(外键)列连接 2 个表

mysql - 关于c3p0和hibernate

php - highstock 的增量 MySQL 时间戳转换

mysql - 删除 RDS 只读副本