我通过这种方式在数据库中使用日期时间格式的日期:

53  13  2344    4   Alaska  0   2015-02-03 08:15:37
54  12  567 25  Alabama 0   2015-02-04 08:16:23
55  36  899 1   Arizona 0   2015-02-05 08:17:15
56  35  325 1   West Virginia   0   2015-02-05 08:18:19
57  13  874 2   Alaska  0   2015-02-05 08:21:26
58  37  6563    1   Indiana 0   2015-02-07 08:22:05
59  36  644 2   Tennessee   0   2015-02-07 08:23:54
60  35  435 1   District of Columbia    0   2015-02-05 08:26:10
61  34  324 2   Idaho   0   2015-02-07 08:36:56
62  13  1235    5   Alaska  0   2015-02-07 13:35:23


现在,我要提取2015-02-05 AND 2015-02-07的记录

我正在使用的SQL查询是:

SELECT * FROM `web_matter_attorney` WHERE `ma_datetime` BETWEEN '2015-02-05' AND  '2015-02-07'


但是它只返回第5个日期的记录,跳过第7个日期的记录。意味着它也没有获得第七名的记录。

我也尝试过:

SELECT * FROM `web_matter_attorney` WHERE `ma_datetime` >= '2015-02-05' AND `ma_datetime` <= '2015-02-07'


但是仍然没有运气和同样的反应。

我的日期名称数据库字段为datetime

我的数据表结构是:

CREATE TABLE `web_matter_attorney` (
  `wma_ID` int(8) NOT NULL AUTO_INCREMENT,
  `att_ID` int(8) NOT NULL,
  `ma_number` varchar(35) NOT NULL,
  `ma_case_ID` int(8) NOT NULL,
  `ma_state` varchar(20) NOT NULL,
  `ma_override` tinyint(1) NOT NULL,
  `ma_datetime` datetime NOT NULL,
  PRIMARY KEY (`wma_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=63 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of web_matter_attorney
-- ----------------------------
INSERT INTO `web_matter_attorney` VALUES ('52', '32', '5494984984', '17', 'Virginia', '0', '2015-01-20 14:48:55');
INSERT INTO `web_matter_attorney` VALUES ('53', '13', '2344', '4', 'Alaska', '0', '2015-02-03 08:15:37');
INSERT INTO `web_matter_attorney` VALUES ('54', '12', '567', '25', 'Alabama', '0', '2015-02-04 08:16:23');
INSERT INTO `web_matter_attorney` VALUES ('55', '36', '899', '1', 'Arizona', '0', '2015-02-05 08:17:15');
INSERT INTO `web_matter_attorney` VALUES ('56', '35', '325', '1', 'West Virginia', '0', '2015-02-05 08:18:19');
INSERT INTO `web_matter_attorney` VALUES ('57', '13', '874', '2', 'Alaska', '0', '2015-02-05 08:21:26');
INSERT INTO `web_matter_attorney` VALUES ('58', '37', '6563', '1', 'Indiana', '0', '2015-02-07 08:22:05');
INSERT INTO `web_matter_attorney` VALUES ('59', '36', '644', '2', 'Tennessee', '0', '2015-02-07 08:23:54');
INSERT INTO `web_matter_attorney` VALUES ('60', '35', '435', '1', 'District of Columbia', '0', '2015-02-05 08:26:10');
INSERT INTO `web_matter_attorney` VALUES ('61', '34', '324', '2', 'Idaho', '0', '2015-02-07 08:36:56');
INSERT INTO `web_matter_attorney` VALUES ('62', '13', '1235', '5', 'Alaska', '0', '2015-02-07 13:35:23');

最佳答案

如果以这种方式使用该功能ma_datetime BETWEEN '2015-02-05' AND '2015-02-07',则时间部分将设置为00:00:00,因此查询结果将为ma_datetime BETWEEN '2015-02-05 00:00:00' AND '2015-02-07 00:00:00',因此该值2015-02-07 08:22:05不在BETWEEN中定义的范围内。

改成

`ma_datetime` BETWEEN '2015-02-05 00:00:00' AND  '2015-02-07 23:59:59'`

关于php - 在日期范围内查找日期不起作用-PHP日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28403996/

10-11 12:46
查看更多