赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 开发参考
  5. SDK参考
  6. Go SDK
  7. SQL查询
  8. 获取时间类型数据

获取时间类型数据

  • SQL查询
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

使用SQL语句查询到时间类型(包括Datetime、Date和Time)数据后,您可以需要根据实际获取具体数据。

前提条件

  • 初始化TableStoreClient。

  • 创建映射关系。

接口说明

获取不同时间类型的接口说明请参见下表,请根据实际时间类型选择。

重要

getDateTime获取的时间时区默认为UTC时区,请根据需要进行时区转换。

时间类型

接口

参数

返回类型

Datetime

getDateTime

columnIndex:int

time.Time

Datetime

getDateTime

columnName:string

time.Time

Time

getTime

columnIndex:int

time.Duration

Time

getTime

columnName:string

time.Duration

Date

getDate

columnIndex:int

time.Time

Date

getDate

columnName:string

time.Time

参数

参数

说明

query

SQL语句,请根据所需功能进行设置。

示例

使用select from_unixtime(time_col) as datetime_value,time(from_unixtime(time_col)) as time_value, date(from_unixtime(time_col)) as date_value from test_table limit 1语句查询test_table表中time_col列数据并将其转换为Datetime、Time、Date三种类型,最多返回1行数据。系统会返回查询语句的请求类型、返回值Schema、返回结果等信息。

func queryData(client *tablestore.TableStoreClient) {
    // 创建SQL请求。
    request := &tablestore.SQLQueryRequest{Query: "select from_unixtime(time_col) as datetime_value,time(from_unixtime(time_col)) as time_value, date(from_unixtime(time_col)) as date_value from test_table limit 1"}

    // 获取SQL的响应结果。
    response, err := client.SQLQuery(request)
    if err != nil {
        panic(err)
    }

    // 获取SQL的返回结果。
    resultSet := response.ResultSet
    fmt.Println("response resultset:")
    for resultSet.HasNext() {
        row := resultSet.Next()
        for i := 0; i < len(columns); i++ {
            name := columns[i].Name
            isnull, err := row.IsNull(i)
            if err != nil {
                println("[INFO:] get column error, name: ", name, ", error: ", err.Error())
                continue
            }
            if isnull {
                println("[INFO]: column is SQL NULL, name: ", name)
                continue
            }
            switch columns[i].Type {
                case tablestore.ColumnType_DATETIME:
                time, err := row.GetDateTime(i)
                if err != nil {
                    println("[INFO:] get column error, name: ", name, ", error: ", err.Error())
                }
                println(time.Local().String())
                time, err = row.GetDateTimeByName("datetime_value")
                if err != nil {
                    println("[INFO:] get column error, name: ", name, ", error: ", err.Error())
                }
                println(time.String())
                case tablestore.ColumnType_TIME:
                duration, err := row.GetTime(i)
                if err != nil {
                    println("[INFO:] get column error, name: ", name, ", error: ", err.Error())
                }
                println(duration.String())
                duration, err = row.GetTimeByName("time_value")
                if err != nil {
                    println("[INFO:] get column error, name: ", name, ", error: ", err.Error())
                }
                println(duration.String())
                case tablestore.ColumnType_DATE:
                date, err := row.GetDate(i)
                if err != nil {
                    println("[INFO:] get column error, name: ", name, ", error: ", err.Error())
                }
                println(date.String())
                date, err = row.GetDateByName("date_value")
                if err != nil {
                    println("[INFO:] get column error, name: ", name, ", error: ", err.Error())
                }
                println(date.String())
            }
        }
    }
}

返回结果如下所示。

response resultset:
2023-11-09 10:14:00.01 +0800 CST
2023-11-09 10:14:00.01 +0800 CST
10h14m0.01s
10h14m0.01s
2023-11-09 00:00:00 +0000 UTC
2023-11-09 00:00:00 +0000 UTC
相关文章

创建映射关系 2025-04-22 14:25

通过create table语句为已存在的表或者多元索引创建映射关系。创建映射关系时需要配置表的字段名称、字段类型和主键信息以及根据需要配置查询数据时的执行引擎。

更新映射表属性列 2025-04-22 14:25

执行ALTER TABLE语句为已存在的映射表添加或删除属性列。 说明 关于ALTER TABLE语句的更多信息,请参见更新映射表属性列。

删除映射表 2025-04-22 14:25

您可以使用 DROP MAPPING TABLE 语句删除映射表,支持同时删除多个映射表。 注意事项 使用SQL查询功能时,建议

列出映射表名称列表 2025-04-22 14:25

通过show tables语句列出当前数据库中的表名称列表。

查询表的描述信息 2025-04-22 14:25

通过describe语句查询表的描述信息,例如字段名称、字段类型等。

查询索引描述信息 2025-04-22 14:25

通过show index语句查询表的索引描述信息。 说明 关于show index语句的更多信息,请参见查询索引描述信息

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