php - 如何访问 BigQuery\Timestamp 的私有属性
问题描述
我正在使用 BigQuery,但在检索数据时遇到问题。我有一个 BigQuery\Timestamp 对象
object(Google\Cloud\BigQuery\Timestamp)#1377 (1) { ["value":"Google\Cloud\BigQuery\Timestamp":private]=> object(DateTime)#1375 (3) { ["date"]=> string(26) "2020-12-09 16:16:56.706000" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+00:00" } }
该value
属性是private
所以我不能使用日期。我收到此错误消息:
Cannot access private property Google\Cloud\BigQuery\Timestamp::$value
如何获取date
属性的字符串值?我需要对两个 bigQuery 数据集中的所有数据进行排序。日期是关键元素,我希望结果结构如下
{
"data": {
"2020-12-12 12:00:00": {
"data1_from_datasetA": 1,
"data2_from_datasetA": 2,
"data1_from_datasetB": 3,
},
"2020-12-12 13:00:00": {
"data1_from_datasetA": 6,
"data2_from_datasetA": 5,
"data1_from_datasetB": 8,
},
"2020-12-12 14:00:00": {
"data1_from_datasetA": 12,
"data2_from_datasetA": 2,
"data1_from_datasetB": 6,
},
}
}
解决方案
我建议要求rawResults
不要将时间戳转换为对象,因为这会适得其反。
$queryResults = $bigQuery->runQuery($jobConfig, array(
'timeoutMs' => 55 * 10000,
'returnRawResults' => true
));
这样,每个条目都作为一个简单的纯值返回。
推荐阅读
- r - 如何在 R 中绘制一条连接 geom_points 的线以进行重复测量?
- sapui5 - UI5 - 关闭单个视图的信箱
- openexr - “./configure make make install”代码需要多长时间才能运行?
- date - 谷歌表搜索日期不同行中的设置值
- angular - Angular - 将本地外部模块添加到应用程序
- javascript - for循环中的setInterval在javascript Angular中具有单独的实例
- php - 即使我使用 HTTP(不断加载),Chrome 也不会打开我由 XAMPP 托管的 PHP 文件
- serenity-bdd - 我无法将自定义字段添加到 Serenity 报告(使用最新版本)
- kotlin - Kotlin 协程:如何将数组通道与过滤器/映射一起使用?
- java - 通用 MergeSort Java 实现堆栈溢出错误