Сегодня 08:24:40 ()․ Эта дата удобно использовать в примерах, чтобы показать, как формировать условия «больше/меньше/равно» текущей даты․
SharePoint предоставляет несколько способов фильтрации элементов списка или библиотеки документов по полю Created (дата создания)․ В зависимости от выбранного интерфейса — пользовательский интерфейс, CAML, REST API или PowerShell — синтаксис запроса отличается, но логика остаётся одинаковой: сравниваем значение поля Created с нужной датой․
Основные способы фильтрации
- Пользовательский интерфейс, быстрый способ через представление (View) с условием «Дата создания»;
- CAML-запросы — используются в серверном коде, JavaScript (JSOM) и PowerShell;
- REST API — удобно для клиентских приложений, SharePoint Framework (SPFx) и Power Automate;
- PowerShell (SharePoint Online Management Shell) — полезно для администрирования и пакетной обработки․
Примеры CAML-запросов
CAML (Collaborative Application Markup Language) описывает условие внутри тега <Where>․ Ниже показаны типичные варианты․
Фильтрация за последние 30 дней
<Where>
<Geq>
<FieldRef Name='Created' />
<Value Type='DateTime'>2026-05-09T08:24:40Z</Value>
</Geq>
</Where>
Здесь мы указываем, что дата создания должна быть больше или равна 30 дней назад от текущей даты ․ Формат YYYY-MM-DDTHH:MM:SSZ — ISO 8601, обязателен для CAML․
Элементы, созданные сегодня
<Where>
<Eq>
<FieldRef Name='Created' />
<Value Type='DateTime'>2026-06-08T00:00:00Z</Value>
</Eq>
</Where>
Чтобы захватить весь день, можно также использовать диапазон:
<Where>
<And>
<Geq>
<FieldRef Name='Created' />
<Value Type='DateTime'>2026-06-08T00:00:00Z</Value>
</Geq>
<Lt>
<FieldRef Name='Created' />
<Value Type='DateTime'>2026-06-09T00:00:00Z</Value>
</Lt>
</And>
</Where>
Элементы, созданные после определённого часа
<Where>
<Gt>
<FieldRef Name='Created' />
<Value Type='DateTime'>2026-06-08T08:24:40Z</Value>
</Gt>
</Where>
Примеры REST API
REST-запрос к SharePoint выглядит так: https://contoso․sharepoint․com/sites/site/_api/web/lists/getbytitle('Documents')/items?$filter=․․․
За последние 7 дней
Сначала вычисляем дату в формате ISO 8601 (UTC)․ Для минус 7 дней получаем ․
https://contoso․sharepoint․com/sites/site/_api/web/lists/getbytitle('Documents')/items?$filter=Created ge datetime'2026-06-01T00:00:00Z'
Созданные сегодня (с учётом времени)
https://contoso․sharepoint;com/sites/site/_api/web/lists/getbytitle('Documents')/items?$filter=Created ge datetime'2026-06-08T00:00:00Z' and Created lt datetime'2026-06-09T00:00:00Z'
Сортировка по дате создания (по убыванию)
https://contoso․sharepoint․com/sites/site/_api/web/lists/getbytitle('Documents')/items?$orderby=Created desc
Примеры PowerShell (SharePoint Online)
Для работы с SharePoint Online потребуется модуль Microsoft․Online․SharePoint․PowerShell и учётные данные․
Подключение
Connect-SPOService -Url https://contoso-admin․sharepoint․com
Получить элементы списка, созданные за последние 14 дней
$siteUrl = "https://contoso․sharepoint․com/sites/project"
$listName = "Tasks"
$ctx = New-Object Microsoft․SharePoint․Client․ClientContext($siteUrl)
$ctx․Credentials = Get-Credential # запрос логина/пароля
$list = $ctx․Web․Lists․GetByTitle($listName)
$caml = @"
<View>
<Query>
<Where>
<Geq>
<FieldRef Name='Created' />
<Value Type='DateTime'>2026-05-25T08:24:40Z</Value>
</Geq>
</Where>
</Query>
</View>
"@
$query = New-Object Microsoft․SharePoint․Client․CamlQuery
$query․ViewXml = $caml
$items = $list․GetItems($query)
$ctx․Load($items)
$ctx․ExecuteWriteQuery
foreach ($item in $items) {
Write-Output ("ID: {0} ⸺ Title: {1} ⸺ Created: {2}" -f $item․Id, $item["Title"], $item["Created"])
}
Фильтрация через параметр -Filter (для Get-PnPListItem)
Connect-PnPOnline -Url https://contoso․sharepoint․com/sites/project -Interactive
$fourteenDaysAgo = (Get-Date)․AddDays(-14)․ToString("yyyy-MM-ddTHH:mm:ssZ")
Get-PnPListItem -List "Documents" -Filter "Created ge datetime'$fourteenDaysAgo'"
Советы и лучшие практики
- Всегда используйте UTC в CAML и REST — SharePoint хранит даты в UTC, а локальное смещение применяется только при отображении․
- Для диапазона целого дня удобно задавать
geначало дня иltначало следующего дня․ - Если нужно часто фильтровать по дате создания, создайте индексированное поле (например, вычисляемый столбец с датой) — это ускорит запросы․
- В REST API используйте параметр
$select, чтобы получать только нужные поля и уменьшить объём трафика․ - При работе с большими списками (>5000 элементов) обязательно включайте пагинацию (
$topи$skiptoken) либо используйте индексированные столбцы в CAML․ - Проверяйте формат даты:
yyyy-MM-ddTHH:mm:ssZ— любое отклонение приведёт к ошибке «Cannot convert value … to type DateTime»․
Фильтрация SharePoint по дате создания — фундаментальная операция, которая реализуется одинаково независимо от выбранного интерфейса․ Понимание форматов дат, правильного использования операторов сравнения и особенностей каждого API позволяет создавать эффективные и надёжные запросы․ Надеюсь, приведённые примеры помогут вам быстро интегрировать фильтрацию по Created в свои решения, будь то пользовательские представления, кастомные формы, скрипты администрирования или приложения на базе SharePoint Framework․