Return to site

Date Parameters In Microsoft Query Wizard

broken image


-->
  • Hi Csukardi151, According to your description, it seems that you would like to add parameters to filter the data in SSRS, right? From the query you shared, if you would like to replace '2017-01-01' and '2017-01-06' with parameters and the date inputted by end user, you'd better add two parameters, for example: @StartDate and @EndDate, and use Date/Time type.
  • With the query open in Design view, on the Design tab, in the Show/Hide group, click Parameters. In the Query Parameters dialog box, in the Parameter column, type the prompt for each parameter for which you want to specify the data type. Make sure that each parameter matches the prompt that you use in the Criteria row of the query design grid.
  • After entering the query (either manually or through the Query Builder), click Next. Figure 4: Return Only Those Products Less Than or Equal to a Parameter Value (Click to view full-size image) Since the query includes parameters, the next screen in the wizard prompts us for the source of the parameters values.
  • Please refer the following query: SELECT Date, Time FROM Table WHERE (DATEDIFF(D, Date, @Date) microsoft.com. Regards, Fanny Liu.

Microsoft Graph supports optional query parameters that you can use to specify and control the amount of data returned in a response. The support for the exact query parameters varies from one API operation to another, and depending on the API, can differ between the v1.0 and beta endpoints.

Tip

You just add question marks into your query and then press ok. Excel will automatically ask you where are your parameters in your sheet. For date parameter you write something like this: SELECT date FROM yourtable WHERE date date format. If timestamp, it will be: 00:00:00.

On the beta endpoint, the $ prefix is optional. For example, instead of $filter, you can use filter.On the v1 endpoint, the $ prefix is optional for only a subset of APIs. For simplicity, always include $ if using the v1 endpoint.

Query parameters can be OData system query options or other query parameters.

OData system query options

A Microsoft Graph API operation might support one or more of the following OData system query options. These query options are compatible with the OData V4 query language.

Note: OData 4.0 supports system query options in only GET operations.

Click the examples to try them in Graph Explorer.

NameDescriptionExample
$countRetrieves the total count of matching resources./me/messages?$top=2&$count=true
$expandRetrieves related resources./groups?$expand=members
$filterFilters results (rows)./users?$filter=startswith(givenName,'J')
$formatReturns the results in the specified media format./users?$format=json
$orderbyOrders results./users?$orderby=displayName desc
$searchReturns results based on search criteria./me/messages?$search=pizza
$selectFilters properties (columns)./users?$select=givenName,surname
$skipIndexes into a result set. Also used by some APIs to implement paging and can be used together with $top to manually page results./me/messages?$skip=11
$topSets the page size of results./users?$top=2

Other query parameters

NameDescriptionExample
$skipTokenRetrieves the next page of results from result sets that span multiple pages. (Some APIs use $skip instead.)/users?$skiptoken=X%274453707402000100000017..

Other OData URL capabilities

The following OData 4.0 capabilities are URL segments, not query parameters.

NameDescriptionExample
$refUpdates entities membership to a collection.POST /groups/{id}/members/$ref
$valueRetrieves or updates the binary value of an item.GET /me/photo/$value

Encoding query parameters

The values of query parameters should be percent-encoded. Many HTTP clients, browsers, and tools (such as the Graph Explorer) will help you with this. If a query is failing, one possible cause is failure to encode the query parameter values appropriately.

An unencoded URL looks like this:

A properly encoded URL looks like this:

Escaping single quotes

For requests that use single quotes, if any parameter values also contain single quotes, those must be double escaped; otherwise, the request will fail due to invalid syntax. In the example, the string value let's meet for lunch? has the single quote escaped.

count parameter

Use the $count query parameter to include a count of the total number of items in a collection alongside the page of data values returned from Microsoft Graph.

For example, the following request returns both the contact collection of the current user, and the number of items in the contact collection in the @odata.count property.

The $count query parameter is supported for these collections of resources and their relationships that derive from directoryObject:

  • users.

expand parameter

Many Microsoft Graph resources expose both declared properties of the resource as well as its relationships with other resources. These relationships are also called reference properties or navigation properties, and they can reference either a single resource or a collection of resources. For example, the mail folders, manager, and direct reports of a user are all exposed as relationships.

Normally, you can query either the properties of a resource or one of its relationships in a single request, but not both. You can use the $expand query string parameter to include the expanded resource or collection referenced by a single relationship (navigation property) in your results.

The following example gets root drive information along with the top-level child items in a drive:

Date

With some resource collections, you can also specify the properties to be returned in the expanded resources by adding a $select parameter. The following example performs the same query as the previous example but uses a $select statement to limit the properties returned for the expanded child items to the id and name properties.

Note: Not all relationships and resources support the $expand query parameter. For example, you can expand the directReports, manager, and memberOf relationships on a user, but you cannot expand its events, messages, or photo relationships. Not all resources or relationships support using $select on expanded items.

With Azure AD resources that derive from directoryObject, like user and group, $expand is only supported for beta and typically returns a maximum of 20 items for the expanded relationship.

filter parameter

Use the $filter query parameter to retrieve just a subset of a collection. The $filter query parameter can also be used to retrieve relationships like members, memberOf, transitiveMembers, and transitiveMemberOf. For example, get all the security groups I'm a member of.

The following example can be used to find users whose display name starts with the letter 'J', use startsWith.

Support for $filter operators varies across Microsoft Graph APIs. The following logical operators are generally supported:

  • equals eq / not equals ne
  • less than lt / greater than gt
  • less than or equal to le / greater than or equal to ge
  • and and / or or
  • in in
  • Negation not
  • lambda operator any any
  • lambda operator all all
  • Starts with startsWith
  • Ends with endsWith

Note: Support for these operators varies by entity. See the specific entity documentation for details.

The contains string operator is currently not supported on any Microsoft Graph resources.

For some usage examples, see the following table. For more details about $filter syntax, see the OData protocol.
The following table shows some examples that use the $filter query parameter.

Note: Click the examples to try them in Graph Explorer.

DescriptionExample
Get all users with the name Mary across multiple properties.https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'mary') or startswith(givenName,'mary') or startswith(surname,'mary') or startswith(mail,'mary') or startswith(userPrincipalName,'mary')
Get all users with mail domain equal to 'hotmail.com'https://graph.microsoft.com/v1.0/users?$count=true&$filter=endsWith(mail,'@hotmail.com')
Get all the signed-in user's events that start after 7/1/2017.https://graph.microsoft.com/v1.0/me/events?$filter=start/dateTime ge '2017-07-01T08:00'
Get all emails from a specific address received by the signed-in user.https://graph.microsoft.com/v1.0/me/messages?$filter=from/emailAddress/address eq 'someuser@example.com'
Get all emails received by the signed-in user in April 2017.https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messages?$filter=ReceivedDateTime ge 2017-04-01 and receivedDateTime lt 2017-05-01
Get all unread mail in the signed-in user's Inbox.https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messages?$filter=isRead eq false
List all Microsoft 365 groups in an organization.https://graph.microsoft.com/v1.0/groups?$filter=groupTypes/any(c:c+eq+'Unified')
Use OData cast to get transitive membership in groups with a display name that starts with 'a' including a count of returned objects.https://graph.microsoft.com/beta/me/transitiveMemberOf/microsoft.graph.group?$count=true&$filter=startswith(displayName, 'a')

format parameter

Use the $format query parameter to specify the media format of the items returned from Microsoft Graph.

For example, the following request returns the users in the organization in the json format:

Note: The $format query parameter supports a number of formats (for example, atom, xml, and json) but results may not be returned in all formats.

orderby parameter

Use the $orderby query parameter to specify the sort order of the items returned from Microsoft Graph.

For example, the following request returns the users in the organization ordered by their display name:

You can also sort by complex type entities. The following request gets messages and sorts them by the address field of the from property, which is of the complex type emailAddress:

To sort the results in ascending or descending order, append either asc or desc to the field name, separated by a space; for example, ?$orderby=name%20desc.

With some APIs, you can order results on multiple properties. For example, the following request orders the messages in the user's Inbox, first by the name of the person who sent it in descending order (Z to A), and then by subject in ascending order (default).

Note: When you specify $filter the server will infer a sort order for the results. If you use both $orderby and $filter to get messages, because the server always infersa sort order for the results of a $filter, you must specify properties in certain ways.

The following example shows a query filtered by the subject and importance properties, and then sorted by the subject, importance, andreceivedDateTime properties in descending order.

Note: Combining $orderby and $filter query parameters is supported on the beta endpoint for the following AD resources and their relationships that derive from directoryObject:

To use $orderby and $filter together, you need to:

  • Add $count=true to the query parameters
  • Add ConsistencyLevel: eventual request header

See optional user query parameters for more information.

search parameter

Use the $search query parameter to restrict the results of a request to match a search criterion.

Using $search on message collections

You can search messages based on a value in specific message properties. The results of the search are sorted by the date and time that the message was sent. A $search request returns up to 250 results.

If you do a search on messages and specify only a value without specific message properties, the search is carried out on the default search properties of from, subject, and body.

The following example returns all messages in the signed-in user's Inbox that contains 'pizza' in any of the three default search properties:

Alternatively, you can search messages by specifying message property names in the following table, that are recognized by the Keyword Query Language (KQL) syntax. These property names correspond to properties defined in the message entity of Microsoft Graph. Outlook and other Microsoft 365 applications such as SharePoint support KQL syntax, providing the convenience of a common discovery domain for their data stores.

Searchable email propertyDescriptionExample
attachmentThe names of files attached to an email message.me/messages?$search='attachment:api-catalog.md'
bccThe bcc field of an email message, specified as an SMTP address, display name, or alias.me/messages?$search='bcc:samanthab@contoso.com'&$select=subject,bccRecipients
bodyThe body of an email message.me/messages?$search='body:excitement'
ccThe cc field of an email message, specified as an SMTP address, display name, or alias.me/messages?$search='cc:danas'&$select=subject,ccRecipients
fromThe sender of an email message, specified as an SMTP address, display name, or alias.me/messages?$search='from:randiw'&$select=subject,from
hasAttachmentTrue if an email message contains an attachment that is not an inline attachment, false otherwise.me/messages?$search='hasAttachments:true'
importanceThe importance of an email message, which a sender can specify when sending a message. The possible values are low, medium, or high.me/messages?$search='importance:high'&$select=subject,importance
kindThe type of message. The possible values are contacts, docs, email, faxes, im, journals, meetings, notes, posts, rssfeeds, tasks, or voicemail.me/messages?$search='kind:voicemail'
participantsThe from, to, cc, and bcc fields of an email message, specified as an SMTP address, display name, or alias.me/messages?$search='participants:danas'
receivedThe date that an email message was received by a recipient.me/messages?$search='received:07/23/2018'&$select=subject,receivedDateTime
recipientsThe to, cc, and bcc fields of an email meesage, specified as an SMTP address, display name, or alias.me/messages?$search='recipients:randiq'&$select=subject,toRecipients,ccRecipients,bccRecipients
sentThe date that an email message was sent by the sender.me/messages?$search='sent:07/23/2018'&$select=subject,sentDateTime
sizeThe size of an item in bytes.me/messages?$search='size:1.500000'
subjectThe text in the subject line of an email message. .me/messages?$search='subject:has'&$select=subject
toThe to field of an email message, specified as an SMTP address, display name, or alias.me/messages?$search='to:randiw'&$select=subject,toRecipients

For more information about searchable email properties, KQL syntax, supported operators, and tips on searching, see the following articles:

  • Searchable properties in Exchange.

Using $search on person collections

You can use the Microsoft Graph People API to retrieve the people who are most relevant to a user. Relevance is determined by the user's communication and collaboration patterns and business relationships. The People API supports the $search query parameter. A $search request returns up to 250 results.

Searches on people occur on both the displayName and emailAddress properties of the person resource.

The following request does a search for a person named 'Irene McGowen' in the displayName and emailAddress properties in each person in the people collection of the signed-in user. Because a person named 'Irene McGowan' is relevant to the signed-in user, the information for 'Irene McGowan' is returned.

Date Parameters In Microsoft Query Wizard Key

The following example shows the response.

To learn more about the People API, see Get information about relevant people.

Using $search on directory object collections

You can use a $search query parameter to filter results using tokenization. Tokenized search works by extracting words from your input and output string, using spaces, numbers, different casing, and symbols to separate the words, as follow:

  • Spaces: hello world => hello, world
  • Different casing⁽¹⁾: HelloWorld or helloWORLD => hello, world
  • Symbols⁽²⁾: hello.world => hello, ., world, helloworld
  • Numbers: hello123world => hello, 123, world

⁽¹⁾ Currently, tokenization only works when the casing is changing from lowercase to uppercase, so HELLOworld is considered a single token: helloworld, and HelloWORld is two tokens: hello, world.⁽²⁾ Tokenization logic also combines words that are separated only by symbols; for example, searching for helloworld will find hello-world and hello.world.

Note: after tokenization, the tokens are matched independently of the original casing, and they are matched in any order.$search query parameter on directory objects collections requires a special request header: ConsistencyLevel: eventual.

The tokenized search support works only on the displayName and description fields. Any field can be put in $search; fields other than displayName and description default to $filter startswith behavior. For example:

https://graph.microsoft.com/beta/groups/?$search='displayName:OneVideo'

This looks for all groups with display names that look like 'OneVideo'. $search can be used together with $filter as well. For example:

https://graph.microsoft.com/beta/groups/?$filter=mailEnabled eq true&$search='displayName:OneVideo'

This looks for all mail-enabled groups with display names that look like 'OneVideo'. The results are restricted based on a logical conjunction (an 'AND') of the $filter and the entire query in the $search. The search text is tokenized based on casing, but matches are performed in a case-insensitive manner. For example, 'OneVideo' would be split into two input tokens 'one' and 'video', but matches properties insensitive to case.

The syntax of search follows these rules:

  • Generic format: $search='clause1' [AND | OR] '[clauseX]'.
  • Any number of clauses is supported. Parentheses for precedence is also supported.
  • The syntax for each clause is: ':'.
  • The property name must be specified in clause. Any property that can be used in $filter can also be used inside $search. Depending on the property, the search behavior is either 'search' or 'startswith' if search is not supported on the property.
  • The whole clause part must be put inside double quotes.
  • Logical operator 'AND' 'OR' must be put outside double quotes. They must be in upper case.
  • Given that the whole clause part needs to be put inside double quotes, if it contains double quote and backslash, it needs to be escaped with a backslash. No other characters need to be escaped.

The following table shows some examples.

Object classDescriptionExample
UserAddress book display name of the user.https://graph.microsoft.com/beta/users?$search='displayName:Guthr'
UserAddress book display name or mail of the user.https://graph.microsoft.com/beta/users?$search='displayName:Guthr' OR 'mail:Guthr'
GroupAddress book display name or description of the group.https://graph.microsoft.com/beta/groups?$search='description:One' AND ('displayName:Video' OR 'displayName:Drive')
GroupAddress book display name on a mail-enabled group.https://graph.microsoft.com/beta/groups?$filter=mailEnabled eq true&$search='displayName:OneVideo'

Both the string inputs you provide in $search, as well as the searchable properties, are split up into parts by spaces, different casing, and character types (numbers and special characters).

select parameter

Use the $select query parameter to return a set of properties that are different than the default set for an individual resource or a collection of resources. With $select, you can specify a subset or a superset of the default properties.

For example, when retrieving the messages of the signed-in user, you can specify that only the from and subject properties be returned:

Important: In general, we recommend that you use $select to limit the properties returned by a query to those needed by your app. This is especially true of queries that might potentially return a large result set. Limiting the properties returned in each row will reduce network load and help improve your app's performance.

In v1.0, some Azure AD resources that derive from directoryObject, like user and group, return a limited, default subset of properties on reads. For these resources, you must use $select to return properties outside of the default set.

skip parameter

Use the $skip query parameter to set the number of items to skip at the start of a collection.For example, the following request returns events for the user sorted by date created, starting with the 21st event in the collection:

Note: Some Microsoft Graph APIs, like Outlook Mail and Calendars (message, event, and calendar), use $skip to implement paging. When results of a query span multiple pages, these APIs will return an @odata:nextLink property with a URL that contains a $skip parameter. You can use this URL to return the next page of results. To learn more, see Paging.

skipToken parameter

Some requests return multiple pages of data, either due to server-side paging or due to the use of the $top parameter to limit the page size of the response. Many Microsoft Graph APIs use the skipToken query parameter to reference subsequent pages of the result.
The $skiptoken parameter contains an opaque token that references the next page of results and is returned in the URL provided in the @odata.nextLink property in the response. To learn more, see Paging.

Access Parameter Query Between Dates

Note: if you're using OData Count (adding $count=true in the querystring), the @odata.count property will be present only in the first page.

top parameter

Use the $top query parameter to specify the page size of the result set.

If more items remain in the result set, the response body will contain an @odata.nextLink parameter. This parameter contains a URL that you can use to get the next page of results. To learn more, see Paging.

$top accepts a minimum value of 1 and a maximum value of 999 (inclusive).

For example, the following request returns the first five messages in the user's mailbox:

Error handling for query parameters

Some requests will return an error message if a specified query parameter is not supported. For example, you cannot use $expand on the user/photo relationship.

However, it is important to note that query parameters specified in a request might fail silently. This can be true for unsupported query parameters as well as for unsupported combinations of query parameters. In these cases, you should examine the data returned by the request to determine whether the query parameters you specified had the desired effect.

See also

Ms Access Query Parameter Examples

  • MS Access Tutorial
  • MS Access Useful Resources
  • Selected Reading

The best part about queries is that you can save and run the same query again and again, but when you run the same query again and again by only changing the criteria then you might consider the query to accept parameters.

  • If you frequently want to run variations of a particular query, consider using a parameter query

  • Parameter query retrieves information in an interactive manner prompting the end user to supply criteria before the query is run.

  • You can also specify what type of data a parameter should accept.

  • You can set the data type for any parameter, but it is especially important to set the data type for numeric, currency, or date/time data.

  • When you specify the data type that a parameter should accept, users see a more helpful error message if they enter the wrong type of data, such as entering text when currency is expected.

  • If a parameter is set to accept text data, any input is interpreted as text, and no error message is displayed.

Example

Date Parameters In Microsoft Query Wizard Word

Let us now take a look at a simple example by creating a parameter query. Let us open your database and select Query Design in the Create table tab.

Double-click on the tblProjects and close the Show dialog box.

Select the field you want to see as a query result as shown in the following screenshot.

In the query design grid, in the Criteria row of the ProjectStart column, type [Enter a project start data]. The string [Enter a project start data] is your parameter prompt. The square brackets indicate that you want the query to ask for input, and the text is Enter a project start data is the parameter prompt displays.

Let us now run your query and you will see the following prompt.

Let us now enter the following date.

Microsoft Query Parameters

Click OK to confirm.

As a result, you will see the details of the project which started on 2/1/2007. Let us go to the Design View and run the query again.

Enter the date as in the above screenshot and click Ok. You will now see the details of the project which started on 5/1/2008. Candystand mini golf nabisco.





broken image