Resumen
Selecciona registros basados en rangos de fecha y hora o propiedades de fecha, por ejemplo, fecha única, rango de tiempo, periodo de tiempo, días de la semana, mes o año.
Uso
La entrada debe ser una capa de entidades o una vista de tabla.
La entrada debe contener un campo de fecha. Si su entrada no contiene ningún campo de fecha, use la herramienta Convertir campo de tiempo para generar un campo de fecha derivado de fechas con formato de texto en un campo de texto.
Esta herramienta realiza una selección con todos los criterios de selección, en caso de que alguna parte de la fecha de entrada no coincida con dichos criterios, la entidad no se seleccionará.
Para usar esta herramienta en un modelo o script, use las herramientas Crear vista de tabla o Crear capa de entidades para convertir una clase de entidad de entrada en una vista de tabla o capa de entidades, respectivamente, antes de ejecutar esta herramienta.
Sintaxis
SelectLayerByDateAndTime(in_layer_or_view, selection_type, time_type, {date_field}, {start_date_field}, {end_date_field}, {selection_options}, {date_selection_type}, {single_date}, {start_date}, {end_date}, {use_system_time}, {time_slice}, {start_time}, {end_time}, {days_of_week}, {months}, {years})
Parámetro | Explicación | Tipo de datos |
in_layer_or_view | Los datos con un campo de fecha a los que se aplicará la selección. | Table View |
selection_type | Especifica cómo se aplicará la selección y qué pasará si ya existe alguna.
| String |
time_type | Especifica cómo se usarán los campos de fecha y hora para seleccionar registros.
| String |
date_field (Opcional) | El campo de fecha de la capa de entrada en la que se basará la selección. Este parámetro está inactivo si Tipo de hora no está definido como Campo de hora única. | Field |
start_date_field (Opcional) | El campo de fecha de inicio del rango de hora en el que se basará la selección. Este parámetro está inactivo si Tipo de hora no está definido como Campos de rango de hora. | Field |
end_date_field (Opcional) | El campo de fecha de finalización del rango de hora en el que se basará la selección. Este parámetro está inactivo si Tipo de hora no está definido como Campos de rango de hora. | Field |
selection_options [selection_options,...] (Opcional) | Especifica cómo se realizarán las selecciones de fecha y hora.
| String |
date_selection_type (Opcional) | Especifica si los registros se seleccionarán en función de un rango de fecha, fecha única, periodo reciente o periodo de tiempo comparativo. Este parámetro solo está activo si se especifica Fecha para el parámetro Opciones de selección.
| String |
single_date (Opcional) | La fecha y hora únicas que se van a seleccionar. Este parámetro solo está activo si se especifica Por fecha única para el parámetro Tipo de selección de fecha. | Date |
start_date (Opcional) | La fecha de inicio del rango de fecha. Este parámetro solo está activo si se especifica Por rango de fechas para el parámetro Tipo de selección de fecha. | Date |
end_date (Opcional) | La fecha de finalización del rango de fecha. Este parámetro solo está activo si se especifica Por rango de fechas para el parámetro Tipo de selección de fecha. | Date |
use_system_time (Opcional) | Especifica si los registros del día actual (hora local del sistema) se incluirán en la selección si existen en el periodo de tiempo reciente.
Por ejemplo, el periodo de tiempo especificado son 14 días, la hora local del sistema son las 5:00 p.m. del 15 de enero cuando se ejecuta la herramienta, el periodo de tiempo actual incluye todos los registros entre las 5:00 p.m. de hace 14 días y las 5:00 p.m. del día en que se ejecuta la herramienta, y SYSTEM_TIME está seleccionado. En este ejemplo, la selección será desde el 1 de enero de 2017 a las 5:00:00 PM hasta el 15 de enero de 2017 a las 5:00:00 PM. Con este mismo ejemplo con NO_SYSTEM_TIME seleccionado, el periodo reciente utiliza el comienzo del día actual como la hora de finalización (en función de la hora local del sistema). En este caso, la selección será desde el 1 de enero de 2017 a las 12:00:00 AM hasta el 15 de enero a las 12:00:00 AM para el periodo de tiempo de 14 días. | Boolean |
time_slice (Opcional) | El número de unidades de tiempo (minutos, horas, días, semanas, meses o años) que definen el periodo de tiempo reciente en el que estará basada la selección, por ejemplo, en eventos de los últimos 14 días. Este parámetro solo está activo si se especifican Por periodo de tiempo comparativo y Por reciente para el parámetro Tipo de selección de fecha. | Time Unit |
start_time (Opcional) | La hora de inicio del rango de hora. | Date |
end_time (Opcional) | La hora de finalización del rango de hora. | Date |
days_of_week [days_of_week,...] (Opcional) | Especifica los días de la semana que se usarán para seleccionar registros.
| String |
months [months,...] (Opcional) | Especifica los meses que se usarán para seleccionar registros.
| String |
years [years,...] (Opcional) | Especifica los años que se usarán para seleccionar registros. | Long |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_layer_or_view | Las entradas actualizadas con selecciones aplicadas. | Vista de tabla |
count | El número de registros seleccionados. | Largo |
Muestra de código
El siguiente script muestra cómo utilizar la función SelectLayerByDateAndTime en el modo inmediato.
import arcpy
arcpy.env.workspace = r"C:/data/city_pd.gdb"
arcpy.ca.SelectLayerByDateAndTime("Crimes",
"NEW_SELECTION",
"SINGLE_TIME_FIELD",
"offendate",
None,
None,
"DATE",
"DATE_RANGE",
None,
"8/1/2018",
"8/31/2018")
El siguiente script independiente es un ejemplo de cómo utilizar la función SelectLayerByDateAndTime en un script:
# Name: SelectLayerByDateAndTime.py
# Description: Select crimes that occurred in the past 28 days, from 9 PM to 1 PM, on the weekend, from the month of October to December, # in the year 2018, and show the selection count. Finally, make a selection based on all the queries above.
# Import script modules import arcpy
# Set the workspace arcpy.env.workspace = r"C:\data\city_pd.gdb"
# Convert Feature class to table view arcpy.management.MakeTableView("Crimes", "Crimes_View")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View", selection_type="NEW_SELECTION", time_type="SINGLE_TIME_FIELD", date_field="offendate", selection_options="DATE", date_selection_type="RECENCY", time_slice="28 Days")
arcpy.AddMessage("Crimes that occurred in past 28 days: {}".format(str(count))) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View", selection_type="NEW_SELECTION", time_type="SINGLE_TIME_FIELD", date_field="offendate", selection_options="TIME", start_time="9:00 PM", end_time="1:00 AM")
arcpy.AddMessage("All crimes that occurred between 9PM and 1AM: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View", selection_type="NEW_SELECTION", time_type="SINGLE_TIME_FIELD", date_field="offendate", selection_options="DAY_OF_WEEK", days_of_week=["SATURDAY", "SUNDAY"])
arcpy.AddMessage("All crimes that occurred on the weekend: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View", selection_type="NEW_SELECTION", time_type="SINGLE_TIME_FIELD", date_field="offendate", selection_options="MONTH", months=["OCTOBER", "NOVEMBER", "DECEMBER"])
arcpy.AddMessage("All crimes that occurred October through December: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View", selection_type="NEW_SELECTION", time_type="SINGLE_TIME_FIELD", date_field="offendate", selection_options="YEAR", years=[2018])
arcpy.AddMessage("All crimes that occurred in the year 2018: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
# Combine selection options for more detailed time queries lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View", selection_type="NEW_SELECTION", time_type="SINGLE_TIME_FIELD", date_field="offendate", selection_options=["TIME", "DAY_OF_WEEK", "MONTH","YEAR"], start_time="9:00 PM", end_time="1:00 AM", days_of_week=["SATURDAY", "SUNDAY"], months=["OCTOBER", "NOVEMBER", "DECEMBER"], years=[2018])
message = """All crimes that occurred in the year 2018 during the months of October through November on the weekends from 9PM to 1AM: {}
""".format(count)
arcpy.AddMessage(message)
arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí