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

Rafal Wilinski

Provided by Rafal Wilinski

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)); } }

Tired of switching accounts and regions? Use Dynobase.

Try 7-day free trial. No strings attached.

Product Features

Member Portal
© 2024 Dynobase
Login to the AWS Console less.
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.