赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. 多元索引
  6. 数据类型
  7. 日期时间类型

日期时间类型

  • 数据类型
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

多元索引支持丰富的日期时间(Date)类型,您可以将数据表中整型(Integer)或者字符串(String)类型的数据在多元索引中映射为日期数据类型。当通过多元索引进行范围查询时,使用日期数据类型查询会比使用字符串类型查询更快。

精度和范围

日期时间类型支持的最大精度是纳秒,日期时间类型数据的取值范围为["1970-01-01 00:00:00.000000000", "2262-04-11 23:47:16.854775807"] 。

日期格式

当数据表中的Integer或String类型映射到多元索引的Date类型时,日期时间类型的格式支持进行设置,详细说明请参见下表。

数据表中字段类型

多元索引中日期时间类型的格式(Format)

整型(Integer)

支持选择预定义格式。预定义格式包括如下选项:

  • "epoch_second":表示秒时间戳,例如秒时间戳"1218197720"对应的时间为"2008-08-08 20:15:20"。

  • "epoch_millis":表示毫秒时间戳,例如毫秒时间戳"1218197720123"对应的时间为"2008-08-08 20:15:20.123"。

  • "epoch_micros":表示微秒时间戳,例如微秒时间戳"1218197720123456"对应的时间为"2008-08-08 20:15:20.123456"。

  • "epoch_nanos":表示纳秒时间戳,例如纳秒时间戳"1218197720123456789"对应的时间为"2008-08-08 20:15:20.123456789"。

字符串(String)

支持自定义格式。常用日期格式如下:

  • yyyy-MM-dd HH:mm:ss.SSS

  • yyyyMMdd HHmmss

  • yyyy-MM-dd'T'HH:mm:ss.SSSX

其中yyyy表示4位的年份,MM表示月份,dd表示天,HH表示24小时制,mm表示分钟,ss表示秒,SSS表示秒的精度,X表示时区偏移量。

关于自定义日期格式规则的更多信息,请参见自定义日期格式规则。

自定义日期格式规则

符号

含义

示例

y

年份

  • yyyy:2008

  • yy:08

M

月份

  • M:7

  • MM:07

d

月分中的第几天

  • d:8

  • dd:08

a

上午(AM)或者下午(PM)标记

  • a:AM

  • a:PM

K

AM或者PM中的小时,取值范围为0~11

  • K:0

  • KK:00

H

一天中的小时,取值范围为0~23

  • H:0

  • HH:00

m

分钟

  • m:1

  • mm:01

s

秒

  • s:1

  • ss:01

S

秒的精度,支持1~9个数字

  • S:3

  • SSS:234

  • SSSSSSSSS:123456789

X

时区偏移

  • X:+01;Z

  • XX:+0130;Z

  • XXX:+01:30;Z

  • XXXX:+013015;Z

  • XXXXX:+01:30:15;Z

x

时区偏移

  • x:+01;+00

  • xx:+0130;+0000,

  • xxx:+01:30;+00:00

  • xxxx:+013015;+0000

  • xxxxx:+01:30:15

'

自定义符号限定符

A~Z和a~z字符为特殊符号,当添加自定义字符串时,需要使用单引号包括。

重要

空格和短划线(-)不需要使用单引号包括。

''

转义单引号

''

日期格式合法性验证

使用日期格式查询数据前,建议您通过多元索引的精确查询(TermQuery)或者JDK8及以上版本的DateTimeFormatter方式验证日期格式的合法性。

通过TermQuery进行验证

创建包含指定日期格式的多元索引后,使用精确查询(TermQuery)进行日期格式的合法性验证。如果代码执行不报错,则日期格式正确。

public void testDateFormat(SyncClient client, String tableName, String indexName) {
    // 创建多元索引。
    CreateSearchIndexRequest request = new CreateSearchIndexRequest();
    request.setTableName(tableName);
    request.setIndexName(indexName);
    IndexSchema indexSchema = new IndexSchema();
    indexSchema.setFieldSchemas(Arrays.asList(
        new FieldSchema("col_date", FieldType.DATE)
        .setIndex(true)
        .setEnableSortAndAgg(true)
        .setDateFormats(Arrays.asList("yyyy-MM-dd HH:mm:ss.SSS"))
    ));
    request.setIndexSchema(indexSchema);
    client.createSearchIndex(request);
    // 验证日期格式。如果查询不报错,则日期格式正确。
    client.search(SearchRequest.newBuilder()
                  .tableName(tableName)
                  .indexName(indexName)
                  .searchQuery(SearchQuery
                               .newBuilder()
                               .query(QueryBuilders.term("col_date", "2022-12-12 12:10:03.123")).build())
                  .build());
}

通过DateTimeFormatter进行验证

重要
  • 此方式在测试某些时区时可能存在误差。

  • 请确保已安装JDK8及以上版本的开发环境。

通过JDK的DateTimeFormatter方法验证日期类型的合法性。如果代码执行不报错,则日期格式正确。


import java.time.format.DateTimeFormatter;

public void testFormatByJdk8() {
    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS").parse("2022-12-12 12:10:03.123");
}

相关文档

  • 当要使用日期时间类型时,您可以通过控制台或者SDK方式在创建多元索引时配置日期时间类型的字段。具体操作,请参见创建多元索引。

  • 多元索引查询类型包括精确查询、多词精确查询、全匹配查询、匹配查询、短语匹配查询、前缀查询、范围查询、通配符查询、模糊查询、多条件组合查询、地理位置查询、嵌套类型查询、向量检索介绍与使用和列存在性查询,您可以选择合适的查询类型进行多维度数据查询。

    如果要对结果集进行排序或者翻页,您可以使用排序和翻页功能来实现。具体操作,请参见排序和翻页。

    如果要按照某一列对结果集做折叠,使对应类型的数据在结果展示中只出现一次,您可以使用折叠(去重)功能来实现。具体操作,请参见折叠(去重)。

  • 如果要进行数据分析,例如求最值、求和、统计行数等,您可以使用Search接口的统计聚合功能或者SQL查询来实现。具体操作,请参见统计聚合和SQL查询。

  • 如果要快速导出数据,而不关心整个结果集的顺序时,您可以使用ParallelScan接口和ComputeSplits接口实现多并发导出数据。具体操作,请参见并发导出数据。

相关文章

字符串类型 2025-04-22 14:42

本文介绍字符串相关的三种类型Keyword、FuzzyKeyword和Text,以及如何在业务研发时选择合适的字符串类型。 背景信息 字符串是数据类系统中最常见的类型,基本在所有业务场景中均会使用到。在传统的关系型数据库中,字符串类型会被细分为定长、变长等多种不同的类型。 在表格存储中,字符串类型主

日期时间类型 2025-04-22 14:42

多元索引支持丰富的日期时间(Date)类型,您可以将数据表中整型(Integer)或者字符串(String)类型的数据在多元索引中映射为日期数据类型。当通过多元索引进行范围查询时,使用日期数据类型查询会比使用字符串类型查询更快。 精度

数组和嵌套类型 2025-04-22 14:42

多元索引除了提供Long、Double、Boolean、Keyword、Text、Date、GeoPoint、Vector等基本类型外,还提供了数组类型和嵌套类型两种特殊类型。数组类型适用于存储一系列相同类型的数据,嵌套类型适用于存储具有层级结构的数据,类似于JSON。

虚拟列 2025-04-22 14:42

使用虚拟列功能时,您可以通过修改多元索引 schema 或者新建多元索引来实现新字段新数据类型的查询功能,而无需修改表格存储的存储结构及数据。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号