mysql日期函数

时间:2012-02-03 00:44:53

标签: mysql sql-date-functions

我在这种格式的数据库表中有一个日期字段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_nu‌​mber,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()))) )

3 个答案:

答案 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)