<p>In SQL Server what is the simplest/cleanest way to make a datetime representing the first of the month based on another datetime? eg I have a variable or column with 3-Mar-2005 14:23 and I want to get 1-Mar-2005 00:00 (as a datetime, not as varchar)</p>

```
```
SELECT DATEADD(mm, DATEDIFF(mm, 0, @date), 0)
```
```