全部產品
Search
文件中心

Tablestore:讀取日期和時間類型資料

更新時間:Jul 31, 2026

通過 Java SDK 讀取 SQL 查詢結果中的 DATETIME、DATE 和 TIME 類型資料。

前提條件

功能說明

調用 sqlQuery 方法執行 SELECT 語句,並使用 SQL 日期和時間函數將數值轉換為 DATETIMETIMEDATE 類型。from_unixtime 的輸入為秒級 Unix 時間戳記。

SQLQueryResponse sqlQuery(SQLQueryRequest request)
重要

getDateTime 返回 UTC 時區的時間。需要使用其他時區時,通過 withZoneSameInstant 轉換時區。

以下樣本將 example_table 映射表中 event_time 列的秒級 Unix 時間戳記轉換為日期和時間類型,並按列名讀取轉換結果。

String query = "SELECT "
        + "from_unixtime(event_time) AS datetime_value, "
        + "time(from_unixtime(event_time)) AS time_value, "
        + "date(from_unixtime(event_time)) AS date_value "
        + "FROM example_table WHERE tenant_id = 1 LIMIT 1";
SQLQueryRequest request = new SQLQueryRequest(query);

SQLQueryResponse response = client.sqlQuery(request);
SQLResultSet resultSet = response.getSQLResultSet();
while (resultSet.hasNext()) {
    SQLRow row = resultSet.next();
    ZonedDateTime dateTime = row.getDateTime("datetime_value");
    Duration time = row.getTime("time_value");
    LocalDate date = row.getDate("date_value");

    System.out.println(dateTime.withZoneSameInstant(ZoneId.of("Asia/Shanghai")));
    System.out.println(time);
    System.out.println(date);
}

參數說明

SQLQueryRequest 包含以下參數。

名稱

類型

說明

query(必選)

String

要執行的 SELECT 語句。通過 from_unixtimetimedate 等函數返回所需的日期和時間類型。

傳回值

SQLQueryResponse.rows 儲存序列化的 SQL 查詢結果。通過 getSQLResultSet() 擷取解析後的 SQLResultSet,再從 SQLRow 中讀取日期和時間類型的列值。

日期和時間類型讀取方法

方法

傳回型別

說明

getDateTime(int columnIndex)

ZonedDateTime

按列序號讀取 DATETIME 類型值。

getDateTime(String columnName)

ZonedDateTime

按列名讀取 DATETIME 類型值。

getTime(int columnIndex)

Duration

按列序號讀取 TIME 類型值。

getTime(String columnName)

Duration

按列名讀取 TIME 類型值。

getDate(int columnIndex)

LocalDate

按列序號讀取 DATE 類型值。

getDate(String columnName)

LocalDate

按列名讀取 DATE 類型值。