日期字段随数据源类型的不同而有所差异,其显示取决于系统区域设置。无论您要显示、计算还是选择日期属性,都必须确定适当的方式来使用数据库中的日期字段。
在“按属性选择”和类似的查询构建对话框中选择和显示日期字段值是通过 SQL 语法完成的,该 SQL 语法会随基础数据库或数据格式的不同而有所差异。在 SQL 参考主题中对此进行了详细说明。
在属性表中计算和显示日期字段需使用不同的格式和语法。这是因为 ArcMap 中的字段计算器使用 Python 和 VBScript 函数,而显示格式取决于系统而不是数据库。本主题仅介绍如何在属性表中使用日期字段以及如何使用“计算字段”地理处理工具(通过属性表的“字段计算器”命令启动)。
显示日期
coverage 或 shapefile 使用以下格式将日期存储在日期字段中:yyyy-mm-dd。地理数据库的日期格式为日期时间 yyyy-mm-dd hh:mm:ss AM 或 PM。Windows 系统中的设置决定了 ArcMap 中的日期显示方式 - M/d/yy、MM/dd/yy 和 yy/MM/dd 等。ArcMap 使用系统短日期格式(数值)显示日期。
计算日期字段
计算日期字段时,ArcMap 中的字段计算器可使用 Python 和 VBScript 日期时间函数。其中某些函数支持日期时间 yyyy-mm-dd hh:mm:ss AM 或 PM。然而,对于 coverage 和 shapefile,日期时间值中的时间部分将被截掉。例如,日期时间 2002-08-20 12:00:00 PM 在 coverage 或 shapefile 中将存储为 2002-08-20。
任何 Python 日期时间函数均可用于计算日期。如果要计算等于当前时间的属性,则可使用 today() 函数。
在计算日期时还可以使用两位数字的年份值。当计算诸如 date_field = dateserial(02,8,20) 的日期并为年份指定两位数字(在本例中为 02)时,系统设置将控制所使用的世纪。可通过 Windows 系统中的“区域选项”来调整此设置。
输入日期字段的值
ArcMap 中日期字段的格式为 mm/dd/yyyy hh:mm:ss,同时还将指定 AM 或 PM。您可以输入所有日期或时间或部分日期或时间。例如,以下所有内容均为可接受的输入:
- 1/31/2000
- 2000 年 1 月 31 日
- January 31, 2000
- 1/31 - 当前日期自动追加到值中
- 13:00:00 PM
- 1:00:00 - AM 自动追加到值中
- Python 示例 - time.strftime('31/1/2000')
- VB 脚本示例 - cdate("1/31/2000") or cdate(#1/31/2000#)