Zusammenfassung
Wählt Datensätze auf Grundlage von Datums- und Uhrzeitbereichen oder Datumseigenschaften aus, z. B. einzelnes Datum, Zeitbereich, Zeitraum, Wochentage, Monat oder Jahr.
Verwendung
Als Eingabe ist ein Feature-Layer oder eine Tabellensicht zulässig.
Die Eingabe muss ein Datumsfeld enthalten. Wenn die Eingabe kein Datumsfeld enthält, können Sie mit dem Werkzeug Zeitfeld konvertieren ein Datumsfeld generieren, das aus den als Text formatierten Datumswerten in einem Textfeld abgeleitet wird.
Dieses Werkzeug trifft eine Auswahl anhand aller Auswahlkriterien. Wenn ein Teil des Eingabedatums nicht den Auswahlkriterien entspricht, wird das Feature nicht ausgewählt.
Um das Werkzeug in einem Modell oder Skript zu verwenden, konvertieren Sie mit dem Werkzeug Tabellensicht erstellen oder Feature-Layer erstellen eine Eingabe-Feature-Class in eine Tabellensicht bzw. einen Feature-Layer, bevor Sie das Werkzeug ausführen.
Syntax
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})
Parameter | Erklärung | Datentyp |
in_layer_or_view | Die Daten, die ein Datumsfeld enthalten, auf das die Auswahl angewendet wird. | Table View |
selection_type | Gibt an, wie die Auswahl angewendet wird, und welche Aktion ausgeführt wird, wenn bereits eine Auswahl vorhanden ist.
| String |
time_type | Legt fest, wie Datums- und Uhrzeitfelder für die Auswahl von Datensätzen verwendet werden.
| String |
date_field (optional) | Das Datumsfeld im Eingabe-Layer, auf dem die Auswahl basieren soll. Dieser Parameter ist deaktiviert, wenn Zeittyp nicht auf Einzelnes Uhrzeitfeld festgelegt ist. | Field |
start_date_field (optional) | Das Feld für das Startdatum aus dem Zeitbereich, auf dem die Auswahl basiert. Dieser Parameter ist deaktiviert, wenn Zeittyp nicht auf Zeitbereichsfelder festgelegt ist. | Field |
end_date_field (optional) | Das Feld für das Enddatum aus dem Zeitbereich, auf dem die Auswahl basiert. Dieser Parameter ist deaktiviert, wenn Zeittyp nicht auf Zeitbereichsfelder festgelegt ist. | Field |
selection_options [selection_options,...] (optional) | Legt fest, wie die Auswahl von Datum und Uhrzeit erfolgt.
| String |
date_selection_type (optional) | Legt fest, ob die Datensätze nach Datumsbereich, einzelnem Datum, Aktualitätszeitraum oder Vergleichszeitraum ausgewählt werden. Dieser Parameter ist nur aktiviert, wenn für den Parameter Auswahloptionen die Option Datum angegeben ist.
| String |
single_date (optional) | Es wird ein einzelner Datums-/Uhrzeitwert ausgewählt. Dieser Parameter ist nur aktiviert, wenn für den Parameter Datumsauswahltyp die Option Nach einzelnem Datum angegeben ist. | Date |
start_date (optional) | Das Startdatum des Datumsbereichs. Dieser Parameter ist nur aktiviert, wenn für den Parameter Datumsauswahltyp die Option Nach Datumsbereich angegeben ist. | Date |
end_date (optional) | Das Enddatum des Datumsbereichs. Dieser Parameter ist nur aktiviert, wenn für den Parameter Datumsauswahltyp die Option Nach Datumsbereich festgelegt ist. | Date |
use_system_time (optional) | Legt fest, ob Datensätze vom aktuellen Tag (lokale Systemzeit) in die Auswahl aufgenommen werden, wenn sie im letzten Zeitraum vorhanden sind.
Beispiel: Das angegebene Zeitintervall beträgt 14 Tage, beim Ausführen des Werkzeugs lautet die aktuelle Systemzeit 17:00 Uhr und das Datum 15. Januar, der Aktualitätszeitraum enthält alle Datensätze zwischen 17:00 Uhr an dem Datum vor 14 Tagen und 17:00 Uhr am Tag der Ausführung des Werkzeugs, und SYSTEM_TIME ist ausgewählt. In diesem Beispiel lautet die Auswahl 1. Januar 2017 17:00:00 Uhr bis 15. Januar 2017 17:00:00 Uhr. Wenn in diesem Beispiel NO_SYSTEM_TIME aktiviert ist, wird für den letzten Zeitraum der Anfang des aktuellen Tages als Endzeit (auf Grundlage der lokalen Systemzeit) verwendet. In diesem Fall lautet die Auswahl für das Zeitintervall von 14 Tagen 1. Januar 2017 00:00:00 bis 15. Januar 2017 00:00:00. | Boolean |
time_slice (optional) | Die Anzahl der Zeiteinheiten (Minuten, Stunden, Tage, Wochen, Monate oder Jahre), die den letzten Zeitraum definieren, auf dem die Auswahl basiert, z. B. Ereignisse in den letzten 14 Tagen. Dieser Parameter ist nur aktiviert, wenn für den Parameter Datumsauswahltyp die Optionen Nach Vergleichszeitraum und Nach Aktualität festgelegt sind | Time Unit |
start_time (optional) | Die Startzeit für den Zeitbereich. | Date |
end_time (optional) | Die Endzeit für den Zeitbereich. | Date |
days_of_week [days_of_week,...] (optional) | Legt die für die Auswahl von Datensätzen verwendeten Wochentage fest.
| String |
months [months,...] (optional) | Legt die für die Auswahl von Datensätzen verwendeten Monate fest.
| String |
years [years,...] (optional) | Legt die für die Auswahl von Datensätzen verwendeten Jahre fest. | Long |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_layer_or_view | Die aktualisierten Eingaben mit angewendeter Auswahl. | Tabellenansicht |
count | Die Anzahl der ausgewählten Datensätze. | Long |
Codebeispiel
Das folgende Skript veranschaulicht, wie die Funktion SelectLayerByDateAndTime im unmittelbaren Modus verwendet wird.
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")
Das folgende eigenständige Skript ist ein Beispiel für die Verwendung der Funktion SelectLayerByDateAndTime in einem Skript:
# 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")
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja