使用ArcGIS Desktop在日期/时间字段中按月选择?


13

我想从ArcGIS中的日期/时间字段中按特定月份进行选择,但似乎找不到一条行之有效的声明。

我有很多年和很多天,但想过滤掉它们,只选择5月份的记录。


您的数据存储在哪里?fGDB?shapefile?SQL Server?甲骨文?
Derek Swingley 2011年

您如何搜索数据?我知道有个错误,如果时间是午夜,则不会显示datetime的时间元素。还要记住,语言环境在数据顺序(月)中很重要,尤其如此。您可以在Python或VBS中使用大量操作来分发日期数据,以及在Oracle方面(之间,等等)。

数据存储在shapefile中。

谢谢!很有用-我很快按日期进行了选择!

欢迎使用GIS.StackExchange。“您的答案”是针对当前问题的潜在答案,而不是评论。随意在最适合您的答案下发表评论,然后按“ upvote”按钮,使该答案更具可信度。这样,新读者将能够判断哪个答案最有帮助。
RyanKDalton 2011年

Answers:


8

也许是这样的:

  1. 打开shapefile属性表,然后单击选项>按属性选择
  2. 键入DatePart("M", [YourDateField]) = 5(5月),然后单击“应用”。

此代码示例非常有效。我实际上使用它来基于Month DatePart计算月份的新字段值。
RyanKDalton 2011年

6

语法取决于从何处获取数据(文件gdb,shapefile,个人gdb,Oracle,DB2等)。

文件地理数据库,shapefile和基于文件的数据(例如dbf文件):

五月的一切:

EXTRACT(MONTH FROM "MyDate") = 05

中午之前:

EXTRACT(HOUR FROM "MyDate") < 12

个人地理数据库(.mdb):

DATEPART("m", [MyDate]) = 05

SQL Server

DATEPART(month, MyDate) = 05

有关更多详细信息,例如进一步的限制和按小时/年/等进行查询。请参阅Esri HowTo:搜索存储在Date-Time字段中的日期的特定部分。有关使用“字段计算器”的扩展示例,请参阅ArcWatch 简化日期和时间计算


2
只想添加评论以帮助其他人阅读此答案。我犯了一个错误,认为月份值用引号引起来(例如EXTRACT(MONTH FROM“ MyDate”)='05'),但我返回的是字符串,但EXTRACT返回的日,月或年为整数。
Hornbydd

5

在ArcGIS 10中(可能与早期版本中的按属性选择工具类似,您可以将选择语句指定为介于月初和月末之间的范围,但是ArcMap中的语法很奇怪。

选择查询应如下所示:

"DateField" >= date '05/01/2011 00:00:00' AND "DateField" < date '06/01/2011 00:00:00'

我使用excel制作了较长的月份范围列表,然后使用模型构建器制作了一个脚本,以通过上述查询批量选择,更新“ order by”字段,然后导出到独立的文件地理数据库要素类。


我的源数据在文件地理数据库中。
Max Squires

1
这可行!太糟糕了,您必须在数据集中将其写出每个年份。谢谢!


2

您应该能够使用适当的数据库功能从日期字段中查询月份。例如,在Oracle中,您可以按属性选择where To_Char([date],'MM') = 4


1

编写一个简单的脚本将是获取日期的全部,然后将其分割:

Time = "2011-04-06 11:26:51"
Month = newTime.split("-")[1]

然后对“月”值进行比较


0

骇人的骇客,但您可以将属性表导出到.csv; 导入Excel,并在excel中解析年/月/日。然后将该Excel工作表加入到您的表中,然后按月份排序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.