# 在线等：histogram 按时间 聚合 的 时区 问题

**URL:** <https://discuss.elastic.co/t/histogram/141473>\
**Category:** 中文提问与讨论\
**Created:** [July 25, 2018, 2:58am UTC](https://discuss.elastic.co/t/histogram/141473 "2018-07-25T02:58:21Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![kklingjie](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kklingjie/32/33705_2.png) [@kklingjie](https://discuss.elastic.co/u/kklingjie)\
**Post date:** [July 25, 2018, 2:58am UTC](https://discuss.elastic.co/t/histogram/141473/1 "2018-07-25T02:58:21Z")

</div>

## ES 插入的 数据 :

```
"hits": [{
"_index": "log",
"_type": "accesslog",
"_id": "5b2977e843644c8a7e8b4582",
"_score": 1,
"_source": {
	"id": {
		"$id": "5b2977e843644c8a7e8b4582"
	},
	"ip": "117.30.209.86",
	"source_url": "www",
	"ctime": "2018-06-20 05:38:48",
	"ctimeint": 1529444328,
	"pagemarks": "PC",
	"user_id": 1021001,
	"url": "id=101119055",
	"user_agent": "Microsoft Internet Explorer"
}

```

}, ]

## ES 查询代码:

```
GET / log / accesslog / _search {
"size": 0,
"query": {
	"filtered": {
		"query": {
			"bool": {
				"must": [{
					"range": {
						"ctimeint": {
							"gte": 1532016000,
							"lt": 1532275200
						}
					}
				}]
			}
		}
	}
},
"aggs": {
	"time": {
		"histogram": {
			"field": "ctimeint",
			"interval": 86400
		},
		"aggs": {
			"mark": {
				"terms": {
					"field": "pagemarks",
					"size": 0,
					"collect_mode": "breadth_first"
				},
				"aggs": {
					"ip": {
						"cardinality": {
							"field": "ip"
						}
					}
				}
			}
		}
	}
}
}

```

## 查询结果：

```
"aggregations": {
"time": {
	"buckets": [{
		"key": 1531958400,
		"doc_count": 1266094,
		"mark": {
			"doc_count_error_upper_bound": 0,
			"sum_other_doc_count": 0,
			"buckets": [{
				"key": "groupbuydetail",
				"doc_count": 89115,
				"ip": {
					"value": 3494
				}
			}, ]
		}
	}]
}

```

## 问题：

需求： 我需要查询某几天内的数据，然后聚合分组到 每天的 不同pagemarks 并统计 pagemarks下的不重复IP 的 数量，最终得到的 数据样本应该是这样的： (查询2018-07-20 到 2018-07-22日 的 记录如下)  
 ![QQ%E6%88%AA%E5%9B%BE20180725105916](https://us1.discourse-cdn.com/elastic/original/3X/5/5/557d24da1870bfc2ff05395fabb71e9c9dd1bb92.png)

不过 我按照 我上面的检索 之后，是满足以上样式了。  
但是 时间 分组 是 异常的。显示的 居然是 **2018/7/19 08:00:00**

query 中的 时间戳转换情况如下 :  
query-\>range: **1532016000** (2018/7/20) ~ **1532275200** (2018/7/23)  
agg-\>buckets: **1531958400** (2018/7/19 08:00:00)

以下几个情况 说明下：

1，put 进ES 的数据源 时间 我们是按照 上海时间 存入的 ！

2, 我的 elasticsearch 版本 是 **1.7.3**

3, 我的 linux(centos) 时间 形如 : **Tue Jul 24 18:21:06 CST 2018** ;

4，开发语言是 PHP

我了解到的一些情况：

1， date\_histogram 是可以设置时区的 ，我对 histogram 设置时区 就报错  
2，我使用 date\_histogram 进行 聚合 使用 {"field":"ctimeint"，"interval":"1d" } 也会报错

大牛，这样的问 该怎么办，我想查询的 分组时间是 2018/7/20 2018/7/21 2018/7/22 这样的

谢谢

---

<div class="post-metadata">

**Author:** ![chenzilong444](https://avatars.discourse-cdn.com/v4/letter/c/bbe5ce/32.png) [@chenzilong444](https://discuss.elastic.co/u/chenzilong444)\
**Post date:** [July 25, 2018, 6:50am UTC](https://discuss.elastic.co/t/histogram/141473/2 "2018-07-25T06:50:22Z")

</div>

我不是很懂这个 但我尽量帮你看看 你存时间的时候设置时区了么  
然后报错返回的结果有么，有可能你的数据不是date类型就没办法用date\_histogram  
你的版本有点老

---

<div class="post-metadata">

**Author:** ![kklingjie](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kklingjie/32/33705_2.png) [@kklingjie](https://discuss.elastic.co/u/kklingjie)\
**Post date:** [July 25, 2018, 9:37am UTC](https://discuss.elastic.co/t/histogram/141473/4 "2018-07-25T09:37:36Z")

</div>

没有报错，只是 异常；  
返回结果 我写上去了 你能看到 。

直方图 我是按照 一天入桶的 不应该是显示 那天的 8点啊，而且 我经过 对比发现 统计出来的数量是不一致的。所以我怀疑是 直方图分桶的时候 可能因为时区 造成了 错放，，我想确认下 1.7 版本 是不是 histogram 的时区 有问题 还是 说 我 该怎么处理。。。求 指教 了、、、

---

<div class="post-metadata">

**Author:** ![chenzilong444](https://avatars.discourse-cdn.com/v4/letter/c/bbe5ce/32.png) [@chenzilong444](https://discuss.elastic.co/u/chenzilong444)\
**Post date:** [July 25, 2018, 10:04am UTC](https://discuss.elastic.co/t/histogram/141473/5 "2018-07-25T10:04:17Z")

</div>

如果你不设置时区 它默认使用utc时间

---

<div class="post-metadata">

**Author:** ![chenzilong444](https://avatars.discourse-cdn.com/v4/letter/c/bbe5ce/32.png) [@chenzilong444](https://discuss.elastic.co/u/chenzilong444)\
**Post date:** [July 25, 2018, 10:08am UTC](https://discuss.elastic.co/t/histogram/141473/7 "2018-07-25T10:08:16Z")

</div>

```
{
    "aggs" : {
        "time" : {
            "date_histogram" : {
                "field" : "ctimeint",
                "interval" : "86400",
                "time_zone": "+08:00"
            }
        }
    }
}

```

？

---

<div class="post-metadata">

**Author:** ![chenzilong444](https://avatars.discourse-cdn.com/v4/letter/c/bbe5ce/32.png) [@chenzilong444](https://discuss.elastic.co/u/chenzilong444)\
**Post date:** [July 25, 2018, 10:09am UTC](https://discuss.elastic.co/t/histogram/141473/8 "2018-07-25T10:09:02Z")

</div>

我没看到你的返回值 显示你撤回了

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [August 22, 2018, 10:09am UTC](https://discuss.elastic.co/t/histogram/141473/9 "2018-08-22T10:09:04Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
