全部產品
Search
文件中心

Tablestore:擷取時間類型資料

更新時間:Jun 30, 2024

使用SQL語句查詢到時間類型(包括Datetime、Date和Time)資料後,您可以根據實際需要擷取具體資料。

前提條件

介面說明

擷取不同時間類型的介面說明請參見下表,請根據實際時間類型選擇。

重要

getDateTime擷取的時間時區預設為UTC時區,請根據需要進行時區轉換。

時間類型

介面

參數

傳回型別

Datetime

getDateTime

columnIndex:int

java.time.ZonedDateTime

Datetime

getDateTime

columnName:String

java.time.ZonedDateTime

Time

getTime

columnIndex:int

java.time.Duration

Time

getTime

columnName:String

java.time.Duration

Date

getDate

columnIndex:int

java.time.LocalDate

Date

getDate

columnName:String

java.time.LocalDate

參數

參數

說明

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、返回結果等資訊。

private static void queryData(SyncClient client) {
  // 建立SQL請求。
  SQLQueryRequest request = new SQLQueryRequest("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的響應結果。
  SQLQueryResponse response = client.sqlQuery(request);

  // 擷取SQL的請求類型。
  System.out.println("response type: " + response.getSQLStatementType());

  // 擷取SQL傳回值的Schema。
  SQLTableMeta tableMeta = response.getSQLResultSet().getSQLTableMeta();
  System.out.println("response table meta: " + tableMeta.getSchema());

  // 擷取SQL的返回結果。
  SQLResultSet resultSet = response.getSQLResultSet();
  System.out.println("response resultset:");
  while (resultSet.hasNext()) {
      SQLRow row = dateTypeSelectResultSet.next();
      System.out.println(row.getDateTime(0).withZoneSameInstant(ZoneId.systemDefault()) + ", " + row.getDateTime("datetime_value").withZoneSameInstant(ZoneId.systemDefault()) + ", " +
              row.getTime(1) + ", " + row.getTime("time_value") + ", " +
              row.getDate(2) + ", " + row.getDate("date_value"));
  }
}

返回結果如下所示。

date type select query begin
response type: SQL_SELECT
response table meta: [datetime_value:DATETIME, time_value:TIME, date_value:DATE]
response resultset:
2023-11-09T10:14:00.010+08:00[Asia/Shanghai], 2023-11-09T10:14:00.010+08:00[Asia/Shanghai], PT10H14M0.01S, PT10H14M0.01S, 2023-11-09, 2023-11-09
select query end