操作方法

操作方法:搜索存储在日期时间字段中的日期的特定部分

Last Published: April 25, 2020

摘要

提供的说明描述了一些示例,用于编写 SQL 语句以仅选择日期时间字段的一部分,然后可以在整个 ArcGIS 的 WHERE 子句中使用这些语句。

过程

有时需要对多个日期(而不仅是对日期范围)进行比较。 可以提取日期字段的部分内容以利用日期时间字段中的不同值。 此功能类似于字符串的 LIKE 函数。

例如,可能需要搜索数据并选择 3 月发生的每个事件。

以下示例展示了如何对文件地理数据库、shapefile、dbf 文件和个人地理数据库执行此操作。
 
注: 请注意,解析这些部分数据的方法取决于用于存储数据的数据库。

继续操作之前需要注意的事项:
 
• 数据库类型控制用于字段名的语法。 例如,gdb/shapefile/dbf:"Field";mdb:[field]; 而 ArcSDE:FIELD。
• 这些函数仅适用于真正的日期时间字段,而不适用于文本字段。
• 在 ArcGIS 中的“验证”按钮可用时,将其用于检查语句是否已正确编写。
 

文件地理数据库、shapefile 和基于文件的数据(例如 dbf 文件)

标准视图如下所示:
 

EXTRACT(extract_part FROM extract_source) = VALUE

将返回“extract_source”的“extract_part”部分。 extract_source 参数为日期时间字段。 extract_part 参数可以是下列任一关键字:YEAR、MONTH、DAY、HOUR、MINUTE 或 SECOND。 也可以使用其他运算符,例如 <、>、<>、<=、>= 等。
 
1. 此示例从具有名为 MyDate 的日期字段的文件地理数据库中提取月份为 3 月的数据:
 
EXTRACT(MONTH FROM "MyDate") = 03

2. 此示例查找中午之前的所有时刻:
 
EXTRACT(HOUR FROM "MyDate") < 12
 
: 不能从 shapefile 或基于文件的数据中调用时间部分,因为它们仅支持使用 DATE 而不支持 TIME。
 

个人地理数据库

这些数据使用 Microsoft 的 DatePart 函数提取日期的一部分。
 

DATEPART(PART, DATEFIELD) = VALUE

PART 参数可以是下列任一关键字:yyyy (YEAR)、m (MONTH)、d (DAY)、h (HOUR)、n (MINUTE) 或 s (SECOND)。 也可以使用其他运算符,例如 <、>、<>、<=、>= 等。
 
1. 此示例从具有名为 MyDate 的日期字段的个人地理数据库中提取月份为 3 月的数据:
 
DATEPART("m", [MyDate]) = 03

2. 此示例查找中午之前的所有时刻:
 
DATEPART("h", [MyDate]) < 12

其他数据库

请查阅数据库的函数文档和语法。

例如,SQL 服务器使用与个人地理数据库相同的 DATEPART 函数,但语法略有不同:
 

DATEPART(year, MyDate) = 2012

文章 ID:000011531

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容