从datetime列获取该月的第一天

时间:2016-03-01 11:31:39

标签: sql sql-server oracle tsql

我正在尝试将此Oracle语句转换为SQL Server:

trunc(e.evt_created) - (to_number(to_char(e.evt_created, 'DD')) - 1)As "Month Raised"

这是本月的第一天,所以如果e.evt_created持有2009-05-11 10:19:27.0那么我需要2009-05-01。

获得该结果的SQL Server等效是什么?

2 个答案:

答案 0 :(得分:1)

您似乎想要一个月的第一天没有时间组件。要在SQL Server中执行此操作:

select dateadd(day,
               1 - day(e.evt_create),
               cast(e.evt_created as date)
              ) as FirstDayOfMonth

答案 1 :(得分:0)

如果使用SQL Server 2012,则可以执行此操作:

declare @d datetime = getdate();
select datefromparts(year(@d),month(@d),1);