DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) Can someone explain me this

前端 未结 5 1194
难免孤独
难免孤独 2020-12-15 06:16
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)

Can someone explain me this.

5条回答
  •  萌比男神i
    2020-12-15 06:38

    this will give you the first of the month for a given date

    inner select select DATEDIFF(MONTH, 0, GETDATE()) will give the number of months from 1900-01-01

    here it is 1350

    this will be add to 1900-01-01 , but only the months

    select DATEADD(MONTH,1350,0) will give 2012-07-01 00:00:00.000

    which is the start of the current month.

    I think this is the most efficient way to find the starting of a month for any given date.

提交回复
热议问题