首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL只按日期搜索时间戳列

MySQL只按日期搜索时间戳列
EN

Stack Overflow用户
提问于 2018-11-21 18:42:51
回答 1查看 538关注 0票数 0

我正在构建一个查询,通过时间戳列值搜索表。我要传递给api的格式的一个例子是2018-10-10。用户具有选择日期范围的能力。通常情况下,日期范围的开始日期是2018-10-10,而结束日期是同一天,2018-10-10。下面这些似乎没什么用。在不需要指定时间的情况下,最简单的方法是什么?显然,我想查询2018-10-10的整个一天,从开始到结束。

代码语言:javascript
复制
SELECT
    count(*)
FROM
    contact
WHERE
    created_at >= '2018-10-10'
    AND created_at <= '2018-10-10';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 18:43:35

这里的问题是Timestamp数据类型也有HH:MM:SS (time)值。在将日期时间与日期进行比较时,MySQL将自动假定00:00:00为日期值的HH:MM:SS

因此,2018-10-10 12:23:22将不匹配以下条件:created_at <= '2018-10-10';因为它将被视为:2018-10-10 12:23:22 <= '2018-10-10 00:00:00,即false

要处理此问题,可以向日期添加一天(筛选器中的date_to),并使用<运算符进行范围检查。

代码语言:javascript
复制
SELECT
    count(*)
FROM
    contact
WHERE
    created_at >= '2018-10-10'
    AND created_at < ('2018-10-10' + INTERVAL 1 DAY);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53418644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档