Query Date Range in DynamoDB Using Java (Guide w/ Code Examples)

This example queries the MyTable table for items where the date attribute is between one month ago and now. The Calendar class is used to get the current date and a date one month ago, which are then passed as parameters to the query.

import java.util.Calendar; import java.util.HashMap; import java.util.Map; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.model.AttributeValue; import com.amazonaws.services.dynamodbv2.model.Condition; import com.amazonaws.services.dynamodbv2.model.QueryRequest; import com.amazonaws.services.dynamodbv2.model.QueryResult; public class QueryDateRangeExample { public static void main(String[] args) { AmazonDynamoDB client = AmazonDynamoDBClientBuilder.defaultClient(); Calendar calendar = Calendar.getInstance(); java.util.Date now = calendar.getTime(); calendar.add(Calendar.MONTH, -1); java.util.Date oneMonthAgo = calendar.getTime(); Map<String, AttributeValue> attributeValues = new HashMap<>(); attributeValues.put(":start", new AttributeValue().withS(oneMonthAgo.toString())); attributeValues.put(":end", new AttributeValue().withS(now.toString())); QueryRequest queryRequest = new QueryRequest() .withTableName("MyTable") .withKeyConditionExpression("date BETWEEN :start AND :end") .withExpressionAttributeValues(attributeValues); QueryResult result = client.query(queryRequest); result.getItems().forEach(item -> System.out.println(item)); } }

Spend less time in the AWS console, use Dynobase.

Try 7-day free trial. No strings attached.

Product Features

Member Portal
© 2023 Dynobase
Tired of AWS Console?
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.