RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • 🤖智能体框架
  • 🦀TPCLAW 智能体平台 (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • 🤖智能体框架
  • 🦀TPCLAW 智能体平台 (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 概述
  • 快速开始
  • 核心概念
  • SQL参考
  • API参考
  • RuleGo集成
  • 加入社区讨论
  • Schema 校验
  • 分析函数
  • 进阶示例
  • 模式识别(MATCH_RECOGNIZE / CEP)
  • 函数

    • 聚合函数
    • 分析函数
    • 窗口函数
    • 数学函数
    • 字符串函数
    • 类型转换函数
    • 时间日期函数
      • 当前时间
        • NOW - 当前日期时间
        • CURRENT_TIME - 当前时间
        • CURRENT_DATE - 当前日期
      • 格式化与解析
        • DATE_FORMAT - 日期格式化
        • DATE_PARSE - 日期解析
      • 日期运算
        • DATE_ADD - 日期加法
        • DATE_SUB - 日期减法
        • DATE_DIFF - 日期差
      • Unix 时间戳
        • UNIX_TIMESTAMP - 转 Unix 时间戳
        • TO_SECONDS - 转秒数时间戳
        • FROM_UNIXTIME - 时间戳转日期
      • 时区
        • CONVERT_TZ - 时区转换
      • 日期部分提取
        • EXTRACT - 通用提取
      • 📚 相关文档
    • JSON函数
    • 哈希函数
    • 数组函数
    • 类型检查函数
    • 条件函数
    • 多行函数
    • 表达式函数
    • 自定义函数
  • 案例集锦

目录

时间日期函数

# StreamSQL 时间日期函数

时间日期函数用于处理时间和日期数据。除 now/current_time/current_date 外,大多数函数接收字符串形式的日期,支持 2006-01-02 15:04:05 与 2006-01-02 两种格式。

# 当前时间

# NOW - 当前日期时间

语法: now()
描述: 返回当前的日期和时间。

# CURRENT_TIME - 当前时间

语法: current_time()
描述: 返回当前时间。

# CURRENT_DATE - 当前日期

语法: current_date()
描述: 返回当前日期。

# 格式化与解析

# DATE_FORMAT - 日期格式化

语法: date_format(date, format)
描述: 将日期时间按格式串转换为字符串。date 为 time.Time 或可解析的字符串。

格式采用字母模式(与 Java SimpleDateFormat / Spark / Flink 同一约定)。年/日/时/秒大小写均可,唯独 M=月、m=分大小写敏感:

符号 含义 示例输出
YYYY / yyyy 年(4 位) 2006
YY / yy 年(2 位) 06
MM 月(大写 M) 01
mm / MI / mi 分(小写 m) 04
DD / dd 日 02
HH / hh 时(24 小时制) 15
SS / ss 秒 05

示例:

date_format('2020-03-05 10:20:30', 'yyyy-MM-dd HH:mm:ss')  -- '2020-03-05 10:20:30'
date_format('2020-03-05 10:20:30', 'YYYY-MM-DD')           -- '2020-03-05'
date_format('2020-03-05 10:20:30', 'HH:mm:ss')             -- '10:20:30'
1
2
3

注意:mm 表示分钟,MM 表示月份。误用大写 MM 会把分钟渲染成月份值。

# DATE_PARSE - 日期解析

语法: date_parse(dateStr, format)
描述: 按格式串解析日期字符串,返回标准格式 2006-01-02 15:04:05。格式串规则与 date_format 一致。
示例: date_parse('2020-03-05', 'yyyy-MM-dd') → '2020-03-05 00:00:00'

# 日期运算

# DATE_ADD - 日期加法

语法: date_add(date, interval, unit)
描述: 给日期加上指定间隔,返回 2006-01-02 15:04:05 格式字符串。unit 支持:year/month/day/hour/minute/second(单复数均可)。
示例: date_add('2020-01-01 00:00:00', 25, 'hour') → '2020-01-02 01:00:00'

当 hour/minute/second 的 interval 过大导致 time.Duration 溢出时返回错误(而非静默回绕)。

# DATE_SUB - 日期减法

语法: date_sub(date, interval, unit)
描述: 给日期减去指定间隔,规则同 date_add。
示例: date_sub('2020-01-02 00:00:00', 1, 'day') → '2020-01-01 00:00:00'

# DATE_DIFF - 日期差

语法: date_diff(date1, date2, unit)
描述: 计算 date1 - date2 在指定单位的差值(int64)。unit 同上。
示例: date_diff('2020-01-02', '2020-01-01', 'day') → 1

year/month 按近似换算(年=365 天、月=30 天)。

# Unix 时间戳

# UNIX_TIMESTAMP - 转 Unix 时间戳

语法: unix_timestamp(date)
描述: 将日期转为 Unix 时间戳(秒,int64)。
示例: unix_timestamp('2020-01-01 00:00:00') → 1577836800

# TO_SECONDS - 转秒数时间戳

语法: to_seconds(date)
描述: 将日期转为 Unix 时间戳(秒),与 unix_timestamp 等价。支持 time.Time 或字符串入参。
示例: to_seconds('2020-01-01T00:00:00Z') → 1577836800

# FROM_UNIXTIME - 时间戳转日期

语法: from_unixtime(timestamp)
描述: 将 Unix 时间戳(秒)转为 UTC 2006-01-02 15:04:05 格式字符串。
示例: from_unixtime(1577836800) → '2020-01-01 00:00:00'

# 时区

# CONVERT_TZ - 时区转换

语法: convert_tz(time, timezone)
描述: 将时间转换为指定时区。time 为 time.Time 或可解析字符串;timezone 为 IANA 时区名(如 Asia/Shanghai、America/New_York)。
示例: convert_tz('2023-01-01 12:00:00', 'Asia/Shanghai') → 北京时间 2023-01-01 20:00:00

# 日期部分提取

# EXTRACT - 通用提取

语法: extract(unit, date)
描述: 从日期中提取指定部分。unit 支持:year/month/day/hour/minute/second/weekday/yearday。
示例: extract('year', '2020-03-05') → 2020

以下为便捷提取函数,均接收一个日期字符串,返回对应整数:

函数 返回 范围
year(date) 年份 如 2020
month(date) 月份 1–12
day(date) 日 1–31
hour(date) 时 0–23
minute(date) 分 0–59
second(date) 秒 0–59
dayofweek(date) 星期几 0–6(0=周日,Go 约定)
dayofyear(date) 年内第几天 1–366
weekofyear(date) ISO 周数 1–53

示例:

year('2020-03-05 10:20:30')    -- 2020
month('2020-03-05')            -- 3
dayofweek('2020-03-05')        -- 4(周四)
weekofyear('2020-03-05')       -- 10
1
2
3
4

# 📚 相关文档

  • 类型转换函数 - 了解类型转换函数的详细用法
  • JSON函数 - 了解JSON函数的详细用法
  • SQL参考 - 查看完整的SQL语法参考
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/07/11, 04:40:00
类型转换函数
JSON函数

← 类型转换函数 JSON函数→

Theme by Vdoing | Copyright © 2023-2026 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式