Google Cloud Datastore 日期字段自动转换

问题描述

我有一个名为 Person 的表,包含三列:

  • id

  • name

  • registeredDate

其中 registeredDateLocalDateTime

我正在尝试使用 Query By GQl 编写查询,如下所示:

Select * from person

我得到以下数据输出

Id  name  registeredDate

1  Xyz   2009-10-09(09:30:00.000) IST

当我尝试使用以下查询时:

Select Id,registeredDate from person

我得到以下输出

Id  registeredDate

1. 1255060800000000

我不知道为什么 datetime 字段显示不正确。为什么它会自动转换。如何使其显示LocalDateTime 格式。

解决方法

Date and time 值作为 projection 查询的一部分返回,正在由数据存储模式转换为微秒整数值。

这是文档中描述的 limitations on projections 之一,如下所示:

在投影查询的结果中,Datastore 模式转换 时间戳值到微秒整数值。

您需要使用其他查询类型来返回 registeredDate,而不是以微秒为单位。