Selecionando por mês no campo de data / hora usando o ArcGIS Desktop?

12

Gostaria de selecionar por um mês específico do meu campo de data / hora no ArcGIS e simplesmente não consigo encontrar uma declaração que funcione.

Tenho vários anos e vários dias, mas quero filtrá-los e escolher apenas os registros a partir do mês de maio.

PolyGeo
fonte
Onde seus dados são armazenados? fGDB? shapefile? Servidor SQL? Oráculo?
Drek Swingley
Como você está pesquisando os dados? Eu sei que há um bug no qual o elemento time do datetime não mostra se o horário é meia-noite. Lembre-se também de que o código do idioma é importante na ordem dos dados, meses, principalmente. Há toda uma série de operações que você pode usar no Python ou no VBS para disseminar dados de datas, bem como no lado do Oracle (Entre, etc ...).
6115 Hairy
Os dados são armazenados em um shapefile.
obrigado! foi útil - fiz minha seleção por datas muito rapidamente!
bem-vindo ao GIS.StackExchange. A "Sua resposta" é destinada a possíveis respostas à pergunta em questão, não a comentários. Fique à vontade para deixar um comentário com a resposta que melhor funcionou para você e pressione o botão "upvote" para dar mais credibilidade a essa resposta. Dessa forma, novos leitores poderão determinar qual resposta provavelmente ajudará.
RyanKDalton

Respostas:

7

Talvez algo parecido com isto:

  1. Abra a tabela de atributos shapefile e clique em Opções> Selecionar por atributos
  2. Digite DatePart("M", [YourDateField]) = 5(para maio) e clique em Aplicar.
JamesS
fonte
Este exemplo de código funciona muito bem. Na verdade, eu o usei para calcular novos valores de campo para o mês com base na data do mês.
RyanKDalton
6

A sintaxe varia dependendo de onde os dados estão sendo buscados (arquivo gdb, shapefile, gdb pessoal, Oracle, DB2, etc.).

Geodatabase de arquivo, shapefiles e dados baseados em arquivo, como arquivos dbf :

Tudo em maio:

EXTRACT(MONTH FROM "MyDate") = 05

Antes do meio dia:

EXTRACT(HOUR FROM "MyDate") < 12

Banco de dados geográficos pessoais ( .mdb ):

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

SQL Server :

DATEPART(month, MyDate) = 05

Para mais detalhes, como limitações adicionais e consultas por hora / ano / etc. consulte o Esri HowTo: procure por partes específicas de uma data armazenada em um campo Data / Hora . Para exemplos estendidos usando a Calculadora de Campo, consulte ArcWatch Simplify Data and Time Calculations .

Matt Wilson
fonte
2
Só quero adicionar um comentário para ajudar outras pessoas a ler esta resposta. Eu estava cometendo o erro de colocar o valor do mês entre aspas (por exemplo, EXTRACT (MÊS DE "MyDate") = '05') pensando que estava retornando uma string, mas EXTRACT retorna o dia, mês ou ano como um número inteiro.
Hornbydd
5

No ArcGIS 10 (provavelmente funciona de maneira semelhante em versões anteriores na ferramenta Selecionar por atributos, você pode especificar a instrução de seleção para ter um intervalo entre o início do mês e o final do mês, mas a sintaxe no ArcMap é estranha.

A consulta de seleção deve ficar assim:

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

Usei o excel para fazer uma longa lista de intervalos de meses e, em seguida, usei o construtor de modelos para criar um script para selecionar em lote pela consulta acima, atualizar um campo 'classificar por' e exportar para uma classe de recurso independente do banco de dados de arquivos.

Max Squires
fonte
meus dados de origem estão em um geodatabase de arquivo.
precisa
1
Isso funciona! É uma pena que você precise escrevê-lo por CADA ano no conjunto de dados. Obrigado!
3

Tente algo como ...

Select DatePart(MM, GetDate()) as Current_Month
Brad Nesom
fonte
2

Você deve poder usar a função de banco de dados apropriada para consultar o mês a partir do campo de data. Por exemplo, no Oracle, você pode selecionar por atributo where To_Char([date],'MM') = 4.

Anthony -GISCOE-
fonte
1

Um script simples de escrever seria obter a data inteira e depois dividi-la:

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

Em seguida, faça sua comparação no valor do mês

Peludo
fonte
0

Corte horrível, mas você pode exportar sua tabela de atributos para .csv; importar para o Excel e analisar o ano / mês / dia no Excel. Em seguida, junte a planilha do Excel à sua tabela e classifique o mês.

djq
fonte