【问题标题】:All records within 3 month access WHERE clause on Date PHP3个月内的所有记录访问日期PHP的WHERE子句
【发布时间】:2014-04-09 17:24:39
【问题描述】:

我想对数据库中存储的记录进行 Quater 明智搜索。问题是我不知道如何在日期中使用BETWEEN。任何帮助将不胜感激。

SELECT * FROM ACED 
         INNER JOIN RACE
         ON ACED.RACE_NO=RACE.RACE_NO

         WHERE R_DATE 
         BETWEEN 
         TO_CHAR(TO_DATE(R_DATE, 'DD-MON-YYYY'), 'MON-YY') = 'JAN-14'
         AND
         TO_CHAR(TO_DATE(R_DATE, 'DD-MON-YYYY'), 'MON-YY') = 'MAR-14'

【问题讨论】:

标签: php sql oracle


【解决方案1】:
SELECT * FROM ACED 
         INNER JOIN RACE
         ON ACED.RACE_NO=RACE.RACE_NO
         WHERE   
         TO_CHAR(R_DATE,'Q') = 1;

Q 格式模型为您提供一年中的季度。一月到三月是第一季度。等等。

【讨论】:

  • 那个Q是什么? @OracleUser
  • 您可以刷新屏幕再试一次。你可能看不到我更新的答案。
【解决方案2】:

between 以相同的方式处理日期、数字、字符串等 - 您只需要确保传递 date 参数而不是字符参数(这将导致运算符进行字典比较)。例如:

SELECT     * 
FROM       aced
INNER JOIN race ON aced.race_no = race.race_no
WHERE      r_date BETWEEN TO_DATE('01-14','mm-yy') AND 
                          TO_DATE('03-14','mm-yy')

【讨论】:

  • 它说STR_TO_DATE 是一个无效的标识符
  • 出于某种原因,我认为这是一个 MySQL 问题 - 已修复。
  • 好的,现在没有错误。只显示零结果。我会解决这个问题。谢谢+1
猜你喜欢
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 2017-04-19
  • 2018-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多