How to Compare Datetime Values in SQL Database: Standard SQL MS SQL Server MySQL PostgreSQL Oracle Operators: < <= > >= = Table of Contents Problem: Example 1: Solution 1: Example 2: Solution 2: Discussion: Problem: You want to compare two datetime values in an SQL WHERE clause. Example 1: The database for an online store has a table named orders with data in the columns order_id and order_time. order_idorder_timepayment_time 2984632021-12-31 08:36:542022-01-01 15:06:41 4038202022-03-10 21:10:012022-03-10 22:07:34 9688322022-07-15 12:59:132022-07-15 12:59:13 We want to find information for each order placed after 2021, i.e., since the start of 2022. Solution 1: Filter down to the users who placed an order after 2021 by order_time in the WHERE clause. When comparing dates, use regular comparison operators: <, >, =, <=, and/or >=. In this example, you want to compare order_time with the datetime '2022-01-01 00:00:00': SELECT * FROM orders WHERE order_time >= '2022-01-01 00:00:00'; Here’s what you get: order_idorder_timepayment_time 4038202022-03-10 21:10:012022-03-10 22:07:34 9688322022-07-15 12:59:132022-07-15 12:59:13 Example 2: Let’s now compare two datetime columns. The database for an online school has a table named assignments with data in the columns assignment_id, due_time, and hand_in_time. assignment_iddue_timehand_in_time 2984632021-12-31 08:00:002022-01-01 15:06:41 4038202022-03-10 21:00:002022-03-10 22:07:34 9688322022-07-15 12:00:002022-07-15 08:59:13 Let’s find information on the assignments handed in late, i.e., where due_time is earlier than hand_in_time. Solution 2: For this example, compare due_time with hand_in_time. Make sure due_time is less than hand_in_time: SELECT * FROM assignments WHERE due_time < hand_in_time; Here’s the result: assignment_iddue_timehand_in_time 2984632021-12-31 08:00:002022-01-01 15:06:41 4038202022-03-10 21:00:002022-03-10 22:07:34 Discussion: Datetime is a data type used in MySQL and SQL Server to represent both date and time information together. To compare datetime values in these databases, use the usual comparison operators <, <=, >, >=, and/or =. When comparing datetime values, the earlier datetime is the “lesser” datetime, and the later datetime is the “greater” datetime. For example, 2022-03-10 21:10:01’ is less than 2022-03-10 22:14:01, and 2022-03-10 09:10:01 is greater than 2022-03-09 21:00:41. When using comparison operators, you may use two datetime columns (as in the second example), or you may compare a column to a datetime in the string format. When comparing a datetime column to a constant date, the constant must be in quotes. The default format in most databases is YYYY-MM-DD hh:mm:ss; that is, the year first, then the month, then the day, then the hour, minute, and second (e.g., '2021-07-22 23:05:04'). Recommended courses: Standard SQL Functions Recommended articles: SQL for Data Analysis Cheat Sheet Performing Calculations on Date- and Time-Related Values See also: How to Compare Date Values in SQL How to Compare two Strings in SQL Subscribe to our newsletter Join our monthly newsletter to be notified about the latest posts. Email address How Do You Write a SELECT Statement in SQL? What Is a Foreign Key in SQL? Enumerate and Explain All the Basic Elements of an SQL Query