mysql - 选择日期提供了错误的结果

标签 mysql date

我试图从数据库中返回一些结果,其中 date_order 列是 1970 年,但查询还返回 2014 年和 2015 年的日期。我尝试了几个查询,但它们都是一样的。

我的 table

  • accession_id (INT),
  • date_order(DATE) 默认“0000-00-00”,
  • date_billed(DATE) 默认“0000-00-00”,
  • date_paid(DATE) 默认“0000-00-00”

我的查询:

  1. 从账单中选择 DISTINCT(accession_id)、date_order、date_billed、date_paid,其中 date(date_order) = '1970-01-01' AND accession_id BETWEEN '206070' AND '296715' OR '402603' AND '411626';

  2. 从账单中选择 DISTINCT(accession_id)、date_order、date_billed、date_paid WHERE date_order = '1970-01-01' AND accession_id BETWEEN '206070' AND '296715' OR '402603' AND '411626' ;

  3. 从结算中选择 DISTINCT(accession_id)、date_order、date_billed、date_paid,其中 date_order LIKE '%1970%' AND accession_id BETWEEN '206070' AND '296715' OR '402603' AND '411626';

最佳答案

您需要在第一组日期之后指定 BETWEEN,并使用括号。就像这样:

SELECT DISTINCT(accession_id), date_order, date_billed, date_paid FROM billing WHERE date(date_order) = '1970-01-01' AND 
(
  accession_id BETWEEN '206070' AND '296715'
  OR
  accession_id BETWEEN '402603' AND '411626'
);

就目前情况而言,这些数字的计算结果为真,并且对它们进行“或”运算,因此您将获得所有结果。

关于mysql - 选择日期提供了错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31788501/

相关文章:

java - 设置 Spring Boot 应用程序以根据 session 的环境参数连接到不同的数据源

C# 没有用 .AddYears(1) 添加一年;

mysql - 统计MySQL中属于某个类别的记录

MySQL:字段长度。真的有关系吗?

mysql - SQL 连接 : group with order

javascript - 在javascript中获取历史日期的时区

linux - 如何在 linux 中读取用户日期并在 svn 日志中使用该日期

javascript - 使用 npm 导入 date-fns

sorting - 基于脚本的 Elasticsearch 日期字段排序

MySql 外键约束,错误 1005