我在这种格式的数据库表中有一个日期字段2012-02-1.i需要编写3个不同的查询:
a。)我需要检索日期介于今天和之前5天之间的所有字段 b。)我需要检索日期超过今天日期5天的所有字段 c。)我需要检索“5天前”到“30天前”之间日期的所有字段
我可以使用一些内置的mysql函数。
操纵以下查询:
SELECT fields
FROM table
WHERE date >= CURDATE() - 5
或类似的东西
或使用between子句。我的语法不正确。
SELECT p.status,p.downpayment_date,p.policy_id,i.id,i.policy_type,i.carrier,i.policy_number,i.client_id,c.id,c.client_name FROM pdp_payment AS p,pdp_policy_info AS i,pdp_client_info AS c WHERE p.policy_id=i.id AND i.client_id=c.id AND (((p.status='close pending') OR (p.status='Cancel')) AND (p.downpayment_date BETWEEN ((INTERVAL 5 DAY AND CURDATE()) - (INTERVAL 30 DAY AND CURDATE()))) )
答案 0 :(得分:0)
对于日期介于今天和之前5天之间的所有字段。
SELECT fields
FROM table
WHERE your_date_field_name BETWEEN CURDATE() - INTERVAL 5 DAY AND CURDATE()
您可以以类似的方式解决其他问题
答案 1 :(得分:0)
今天和之前5天之间的日期。
SELECT fields FROM table
WHERE date_field BETWEEN CURRENT_DATE - INTERVAL 5 DAY AND CURRENT_DATE
日期小于前5天。
SELECT fields FROM table
WHERE date_field < CURRENT_DATE - INTERVAL 5 DAY
答案 2 :(得分:0)
date
是一个关键字,因此当您将其用作字段名称时,必须将其括在反引号`
中,否则您将收到解析错误。
获得你想要的范围:
WHERE `date` BETWEEN DATE_ADD(NOW(),INTERVAL -30 DAY) AND DATE_ADD(NOW(),INTERVAL -5 DAY)