How to set time to 00:00:00 with GETDATE() in SQL

By FoxLearn 10/7/2024 9:18:40 AM   262
In SQL Server, if you want to set the time part of the current date to 00:00:00 while using GETDATE(), you can use the CAST or CONVERT function to strip the time portion.

1. Using CAST

You can cast the result of GETDATE() to a date type and then back to datetime type, which will automatically set the time to 00:00:00.

For example:

SELECT CAST(CAST(GETDATE() AS date) AS datetime) //2024-10-07 00:00:00.000

2. Using CONVERT

You can use the CONVERT function similarly.

For example:

SELECT CONVERT(datetime, CONVERT(date, GETDATE())) //2024-10-07 00:00:00.000

3. Using DATEADD

If you want to explicitly set the time to midnight while keeping the date part from GETDATE(), you can use DATEADD.

For example:

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) //2024-10-07 00:00:00.000

All the above methods will return the current date with the time set to 00:00:00. You can choose any of the methods above based on your preference.

They all effectively achieve the same result of getting the current date with the time portion set to midnight.