【问题标题】:Cannot get 180 day sql date to work无法让 180 天的 sql 日期正常工作
【发布时间】:2013-10-02 21:08:04
【问题描述】:
SELECT CTT.BAN, `Company`, `CID`, `FName`, `MInit`, 
   `LName`, `OName`, `Address`, `City`, `State`, 
   `PostalCode`, `ActiveDate`, `ClosedDate`, `Draft`, 
   `Credit`, `BillingCycle`, `BillingFreq`, `Suspended`, 
   `Paperless` , BTT.Bal 
FROM CustomerT CTT
  JOIN BalanceT BTT
ON (CTT.BAN = BTT.BAN)
WHERE  `Paperless` !=  '1'
   AND `BankDraft` != -1
   AND `CreditCard` != -1
   AND (`BillingCycle` = '1' OR `BillingCycle` = '0')
   AND `Bal` > 2 
   AND (`AccountClosedDate` IS NULL OR 
            DATE(`AccountClosedDate`) >= (NOW() - INTERVAL 180 DAY)  )

一切都适用于这个查询,但 180 日期 peice 我已经从这个站点尝试了几件事,但没有运气。我只需要将最近 6 个月的关闭帐户包含在表格中。

【问题讨论】:

  • 不应该是 >= (NOW() - INTERVAL 180 DAY) - 我的意思是 AccountClosedDate 大于,不少于,180 天前?

标签: mysql sql date select


【解决方案1】:

DATE_ADD试试这个

SELECT CTT.BAN, `Company`, `CID`, `FName`, `MInit`, `LName`, `OName`, `Address`, `City`, `State`, `PostalCode`, `ActiveDate`, `ClosedDate`, `Draft`, `Credit`, `BillingCycle`, `BillingFreq`, `Suspended`, `Paperless` , BTT.Bal 
FROM CustomerT CTT
JOIN BalanceT BTT ON
(CTT.BAN = BTT.BAN)
WHERE  `Paperless` !=  '1'
AND `BankDraft` != -1
AND `CreditCard` != -1
AND (`BillingCycle` = '1' OR `BillingCycle` = '0')
AND `Bal` > 2 
AND (`AccountClosedDate` IS NULL OR DATE(`AccountClosedDate`) >=DATE_ADD(CURDATE(), INTERVAL -180 DAY))

或使用( CURDATE() - INTERVAL 180 DAY )

SELECT CTT.BAN, `Company`, `CID`, `FName`, `MInit`, `LName`, `OName`, `Address`, `City`, `State`, `PostalCode`, `ActiveDate`, `ClosedDate`, `Draft`, `Credit`, `BillingCycle`, `BillingFreq`, `Suspended`, `Paperless` , BTT.Bal 
FROM CustomerT CTT
JOIN BalanceT BTT ON
(CTT.BAN = BTT.BAN)
WHERE  `Paperless` !=  '1'
AND `BankDraft` != -1
AND `CreditCard` != -1
AND (`BillingCycle` = '1' OR `BillingCycle` = '0')
AND `Bal` > 2 
AND (`AccountClosedDate` IS NULL OR DATE(`AccountClosedDate`) >=( CURDATE() - INTERVAL 180 DAY ))

【讨论】:

  • OP 有<=,而不是>=。这很可能是实际的错误。在这种情况下,他的原始查询应该只需要这个小修正即可。
  • @AndreiTanas OP 要求 我只需要在表格中包含过去 6 个月关闭的帐户,还可以查看 OP 的已编辑问题
  • @dianuj 您的第二个解决方案非常有效。谢谢你,我离得那么近,却又那么远。 (CURDATE() - 间隔 180 天)工作。
猜你喜欢
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
相关资源
最近更新 更多