Question: How can we deduce the date falling exactly 3 months prior to the current date in SQL Server?

Answer: 
use dateadd

```
select convert(date, dateadd(month,-3,getdate()))
output
16/07/2018 00:00:00

```
Use **[`DATEADD()`](https://learn.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-2017)** function

```
SELECT DATEADD(M, -3,GETDATE()) AS WithTime,
       CAST(DATEADD(M, -3, GETDATE()) AS DATE) AS WithoutTime

```

If you are working on newest versions of SQL Server (2012+) I would recommand to use **[`TRY_CONVERT()`](https://learn.microsoft.com/en-us/sql/t-sql/functions/try-convert-transact-sql?view=sql-server-2017)** or **[`TRY_CAST()`](https://learn.microsoft.com/en-us/sql/t-sql/functions/try-cast-transact-sql?view=sql-server-2017)** functions.