You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Presto SQL筛选时间戳小时在指定区间内的所有行?

获取日期列小时处于21:00-22:00之间的SQL语句

根据不同数据库的语法特性,这里提供几种常用的实现方式:

  • MySQL/MariaDB
    两种常见写法,优先推荐第二种(可利用索引提升查询效率):

    -- 方式1:提取小时值判断
    SELECT *
    FROM your_table_name
    WHERE HOUR(date) = 21;
    
    -- 方式2:直接匹配时间范围
    SELECT *
    FROM your_table_name
    WHERE date >= DATE_FORMAT(date, '%Y-%m-%d 21:00:00')
      AND date < DATE_FORMAT(date, '%Y-%m-%d 22:00:00');
    
  • PostgreSQL
    同样支持提取小时或直接比较时间部分:

    -- 方式1:提取小时值判断
    SELECT *
    FROM your_table_name
    WHERE EXTRACT(HOUR FROM date) = 21;
    
    -- 方式2:转换为时间类型匹配范围
    SELECT *
    FROM your_table_name
    WHERE date::time >= '21:00:00'
      AND date::time < '22:00:00';
    
  • SQL Server
    借助日期函数或类型转换实现:

    -- 方式1:提取小时值判断
    SELECT *
    FROM your_table_name
    WHERE DATEPART(HOUR, date) = 21;
    
    -- 方式2:转换为时间类型匹配范围
    SELECT *
    FROM your_table_name
    WHERE CONVERT(time, date) >= '21:00:00'
      AND CONVERT(time, date) < '22:00:00';
    

注意:请将上述代码中的your_table_name替换为你的实际表名。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:20:28