mysql - 有什么区别

标签 mysql sql sql-timestamp

我有第一个问题

select count(*)
from `order`
where marketer_id = 75 and
      HandleStatus != -1 and
      (Created_at BETWEEN '2017-05-01' AND '2017-05-31')

结果是1050

我还有第二个问题:

select count(*)
from `order`
where marketer_id = 75 and
      HandleStatus != -1 and
      (Month(Created_at) =5 and Year(Created_at) = 2017)

结果是1111

我认为 2 个查询具有相同的含义,但它返回 2 个不同的结果。 关于列“Created_at”的信息:COLUMN_NAME Created_at,COLUMN_TYPE 时间戳,IS_NULLABLE NO,COLUMN_KEY,COLUMN_DEFAULT CURRENT_TIMESTAMP

请帮忙2个查询有什么区别?

最佳答案

如果考虑一天内的时间,第一次查询只返回2017-05-31 00:00:00之前的结果。 如果您在 2017-05-31 00:00:00 之后和 2017-05-31 23:59:59 之前(也可能精确到毫秒)有任何结果,它们只会出现在第二个查询中。

关于mysql - 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44361937/

相关文章:

php - MySQL查询单行并从中获取值

php - 西里尔文 - php、 header 和 mysql 的主要设置(UTF8 是解决方案吗?)

c# - 使用 C# 将数据添加到我的 Sql 数据时出现 "Procedure expects parameter which was not supplied"错误

date - Hive - 来自时间戳列的月份和年份

java - Scala、SQL Server - 如何使用 Scala 将当前时间戳作为日期时间插入 SQL Server 中?

mysql - 在 SQL 中计算两个或多个时间戳之间的分钟数

php - WordPress - 列出具有特定 meta_key 值的自定义类型

sql - SQL:通过删除左右字符来获取子字符串

sql - SQL Server 的 LIMIT 和 OFFSET 等效吗?

mysql - 为什么 MySQL 多列索引会过载?