无论您要显示、计算还是选择日期属性,都必须确定适当的方式来使用数据库中的日期值。 日期至可以存储在字段中,字段类型可以是 Date、DateOnly、TimeOnly 和 TimestampOffset。 时间值可以作为附加信息存储在 Date 和 TimestampOffset 字段中,也可以作为单独的值存储在 TimeOnly 字段中。
在按属性选择图层工具和类似的查询构建对话框中选择和显示日期值是通过 SQL 语法完成的。 用于选择和显示日期值的 SQL 语法会因数据库的类型而有所不同。 在 SQL 参考主题中对此进行了详细说明。
在属性表中计算和显示日期字段需使用不同的格式和语法。 这是因为 ArcGIS Pro 中的字段计算器使用 Python 函数,而显示格式取决于区域设置而不是系统的基础数据库格式。
显示日期
shapefile 使用以下格式将日期存储在 Date 字段中:yyyy-mm-dd。 地理数据库在 Date、DateOnly、TimeOnly 或 TimestampOffset 字段中存储日期和时间值。 使用 Date 字段时,会将日期格式设置为 yyyy-mm-dd hh:mm:ss AM 或 PM,使用 DateOnly、TimeOnly 字段时,仅包含相应的部分。 TimestampOffset 字段与 Date 字段包含相同的信息,还包含以小时为单位的时区偏移值(相对于 UTC)。 Windows 系统中的设置决定了 ArcGIS Pro 中的日期显示方式 - M/d/yy、MM/dd/yy、yy/MM/dd 等。 ArcGIS Pro 使用系统短日期格式(数值)显示日期。 尽管这些是默认格式,但日期还可以格式化为在表和弹出窗口中以不同方式显示。
ArcGIS Pro 遵照 Windows 的日期格式设置。
注:
编辑这些值时,Web 要素图层中“日期”字段的时区信息将显示在字段标题的工具提示以及任何日历控件中。 默认情况下,除非已设置首选时区,否则系统会将该值设置为协调世界时间 (UTC)。 必须在托管端编辑地图或要素服务设置,包括时区。
使用日期字段过滤
在日期字段上定义表属性的时间后,表将自动过滤其记录,以仅显示位于当前时间滑块范围内的记录。 当您在地图视图中移动或播放时间滑块时,表中只会显示落入当前跨度的记录。
注:
活动时间滑块会影响从目录视图或目录窗格打开的表。
地图中已启用时间时,过滤器默认处于打开状态。 要查看表中的所有记录,可以关闭位于表视图底部的按时间过滤 。 还可以在表选项卡下的过滤器组中访问表的过滤器选项。
计算日期字段
计算日期值时,字段计算器使用 Python 日期时间函数。 某些函数支持日期时间 yyyy-mm-dd hh:mm:ss AM 或 PM。但是,在 DateOnly 或 TimeOnly 字段中存储的值仅支持适用于其类型的函数。 对于 shapefile,日期时间值中的时间部分将被截掉。 例如,日期时间 2002-08-20 12:00:00 PM 在 shapefile 中将存储为 2002-08-20。
您可以使用任何 Python 日期时间函数计算日期。 要计算等于当前时间的属性,使用 today() 函数。
在计算日期时还可以使用两位数字的年份值。 当计算诸如 date_field = dateserial(02,8,20) 的日期并为年份指定两位数字(在本例中为 02)时,系统设置将控制所使用的世纪。 您可以通过 Windows 中的区域和时间选项调整这些设置。
使用日期字段选择要素
可使用按属性选择图层地理处理工具针对日期字段、数值字段以及字符串字段构建 SQL 选择查询。 可通过基于日期值查询数据集选择单个或多个记录。 要查询日期,需要数据相关语法。
有关查询日期的规范和语法差异的说明,请参阅 SQL 参考指南。