Todos os produtos
Search
Central de documentação

Tablestore:Consultar dados de data e hora

Última atualização: Jul 03, 2026

Este tópico descreve como consultar dados de data e hora, apenas data e apenas hora na resposta de uma instrução SQL.

Pré-requisitos

  • TableStoreClient inicializado. Para mais informações, consulte a seção "Inicializar o TableStoreClient" no tópico Inicialização.

  • Tabela de mapeamento criada. Para mais informações, consulte Criar uma tabela de mapeamento.

Operações de API

A tabela a seguir descreve as operações de API disponíveis para consultar diferentes tipos de dados de data e hora. Selecione a operação conforme o tipo de dado desejado.

Importante

O fuso horário padrão dos dados retornados pela operação getDateTime é UTC. Converta o fuso horário conforme as necessidades do seu negócio.

Tipo de tempo

Operação

Parâmetro

Tipo de valor de retorno

Data e hora

getDateTime

columnIndex (tipo INT)

time.Time

Data e hora

getDateTime

columnName (tipo STRING)

time.Time

Hora

getTime

columnIndex (tipo INT)

time.Duration

Hora

getTime

columnName (tipo STRING)

time.Duration

Data

getDate

columnIndex (tipo INT)

time.Time

Data

getDate

columnName (tipo STRING)

time.Time

Parâmetro

Parâmetro

Descrição

query

Instrução SQL. Configure este parâmetro de acordo com o recurso necessário.

Exemplo

Execute a instrução select from_unixtime(time_col) as datetime_value, time(from_unixtime(time_col)) as time_value, or date(from_unixtime(time_col)) as date_value from test_table limit 1 para consultar dados na coluna time_col da tabela test_table e convertê-los nos formatos de data e hora, hora e data. O sistema retorna no máximo uma linha de dados, incluindo o tipo de solicitação, o esquema da resposta e o resultado da instrução SQL.

func queryData(client *tablestore.TableStoreClient) {
    // Create an SQL request. 
    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"}

    // Obtain the response to the SQL request. 
    response, err := client.SQLQuery(request)
    if err != nil {
        panic(err)
    }

    // Obtain the response result of the SQL statement. 
    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())
            }
        }
    }
}

Resposta de exemplo:

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