通达信DATE和TIME返回什么?日期编码、分钟周期与时间条件排错

DATE日期编码与TIME时分字段核对流程示意,非软件截图
原创日期与时间编码示意,非通达信客户端截图。

发布日期:2026年10月11日。把DATE直接与八位年月日比较,或把TIME当作电脑当前时钟,可能让时间条件一直不成立。排查时先明确函数返回的是哪根K线的字段,再区分编码、周期与实际数据是否存在。

适用环境:支持DATE、TIME等函数的通达信公式环境。TIME和TIME2按官方说明用于日线以下周期。下文日期和时刻为原创编码演算,不代表真实交易日、实际K线或客户端实测结果。

一、DATE不是直接返回八位年月日

官方DATE使用相对1900年的年月日编码。可把编码理解为“年份减1900后,接两位月和两位日”。例如演算日期2024年5月6日,对应1240506,而不是20240506。

演算日期 相对年份 DATE编码 便于阅读的年月日
2000-01-01 100 1000101 20000101
2024-05-06 124 1240506 20240506
2026-10-11 126 1261011 20261011

按官方说明,DATE加19000000可换成便于阅读的年月日值,但官方同时提示不要在公式内容中直接写八位长日期数字。上表是解释编码的文本,不是建议把右栏数字复制到筛选条件里。

D:DATE;
YY:YEAR;
MM:MONTH;
DD:DAY;

先输出这些字段,查看所选历史K线的值。YEAR、MONTH、DAY分别表达该周期的年、月、日,比混用电脑时钟更容易定位。小数显示设置可能让整数后面出现小数位,不改变日期编码的含义。

二、TIME与TIME2不能混用位数

函数 字段含义 演算时刻09:30:05 限制
TIME 该周期的时、分 数值930 不包含秒
TIME2 该周期的时、分、秒 数值93005 是否有对应数据须另查

数值前面的零不会让整数变成另一个数;09:30、0930是便于阅读的写法,TIME对应的是数值930。不要拿TIME去和93000这样的时分秒编码比较,也不要拿TIME2去和930直接当成同一时刻。

T:TIME;
T2:TIME2;
WINDOW:TIME>=930 AND TIME<1000;

WINDOW只是“该K线时间字段落在09:30至10:00之前”的逻辑示例,起点包含、终点不包含。它不是自动交易指令,不保证每种品种都有09:30这根K线,也不保证更大分钟周期在每一分钟都有记录。

三、K线时间不等于电脑当前时间

DATE和TIME描述当前计算周期的数据;把光标移到历史K线时,应按该历史周期理解。红宝书另有MACHINEDATE、MACHINETIME描述客户端机器日期或时间,它们回答的是另一个问题。用机器时钟替代K线时间筛历史数据,会改变条件含义,不能作为“修复编码”的捷径。

分钟K线的时间标签、聚合边界、交易时段和数据缺口需要在实际客户端确认。尤其不能仅凭TIME2包含秒,就声称客户端提供逐秒历史行情。

四、时间条件不成立的排查顺序

  1. 确认使用日线以下周期;不要拿日线结果推断分钟时段筛选是否正确。
  2. 输出DATE、YEAR、MONTH、DAY、TIME、TIME2,记录一根确实存在的数据的原值。
  3. 分清七位相对年份编码、八位阅读格式、时分及时分秒,不混用比较常量。
  4. 核对起止端点是否包含、所选分钟周期是否有对应标签,以及数据是否完整。
  5. 如果又引用REF,确认比较发生在当前根还是上一根,避免把编码正确误当成位置正确。

相关入口:基础教程中心、条件选股的周期与范围、日线数据范围与缺失检查、REF引用位置排错。日线下载教程不等于分钟或逐秒数据下载教程。

来源与限制

原始依据:通达信用户红宝书DATE、TIME、TIME2、YEAR、MONTH、DAY、MACHINEDATE与MACHINETIME条目。本文未测试特定品种的时间标签规则,不承诺数据权限、手机版兼容性或任何收益。