我尝试查询此API,通过RptDt
字段(类型为esriFieldTypeDate
)进行过滤。
基本查询如下所示:
https://dhsgis.wi.gov/server/rest/services/DHS_COVID19/COVID19_WI_V2/MapServer/11/query?where=1%3D1&outFields=*&outSR=4326&f=json
像POS_CUM_SUM
这样的数值变量很容易过滤:
"https://dhsgis.wi.gov/server/rest/services/DHS_COVID19/COVID19_WI_V2/MapServer/11/query?where=%20(POS_CUM_CP%20%3D%200%20OR%20POS_CUM_CP%20%3D%2010)%20&outFields=*&outSR=4326&f=json"
我不知道如何格式化日期字段RptDt
的最小和最大参数。
- 因为
RptDt
的属性被格式化为unix时间戳:1642255200000,1642428000000。但是返回错误代码400。
https://dhsgis.wi.gov/server/rest/services/DHS_COVID19/COVID19_WI_V2/MapServer/11/query?where=%20(RptDt%20%3D%20'1642255200000'%20OR%20RptDt%20%3D%20'1642428000000')%20&outFields=*&outSR=4326&f=json
- 然后,我注意到
RptDt
的字段长度是8,所以我尝试将unix时间戳四舍五入为8位数(16422552,16424280),但这也给出了错误代码400。 - 我尝试使用YYYYMMDD格式(20210101到20211231),这个没有给予错误,但是响应没有任何特征。大多数日期确实落在这个时间段。
https://dhsgis.wi.gov/server/rest/services/DHS_COVID19/COVID19_WI_V2/MapServer/11/query?where=%20(RptDt%20%3D%20%2720210101%27%20OR%20RptDt%20%3D%20%2720211231%27)%20&outFields=*&outSR=4326&f=json
我在ArcGIS REST APIs文档中找不到解决方案。有人知道我的查询中缺少了什么吗?
2条答案
按热度按时间waxmsbnn1#
正确的格式是
'YYYY-MM-DD'
。此查询有效。相关位是where=RptDt>'2022-01-01'
。感谢Esri社区论坛的JamieKelly1回答此问题。
im9ewurl2#
对于其他在得到-2147220985(btw意味着糟糕的SQL查询)后偶然发现这个问题的人来说,我使用的完整URL必须在实际日期之前包含Date,比如
Date'2015-02-02'
,而不仅仅是'2015-02-02'
。此外,在查询构建器中不能使用以毫秒为单位的历元时间戳(至少对开放数据dc来说是这样)。示例URL:
https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/ServiceRequests/MapServer/6/query?where=%20(ADDDATE%20%3D%20Date'2015-02-02'%20OR%20ADDDATE%20%3D%20Date'2015-02-03')%20&outFields=*&outSR=4326&f=json
要在两个日期之间搜索:
https://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/ServiceRequests/MapServer/6/query?where=ADDDATE BETWEEN DATE '2015-01-09 00:00:00' AND DATE '2015-01-09 12:00:00'&outFields=*&outSR=4326&f=json