2016-03-01 85 views
0

我想這個說法的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

你能給輸入和輸出的例子在SQL Server中做到這一點?這似乎是在Oracle中做的一個冗長的方式 - 似乎模仿'trunc(e.evt_created,'MM')',但可能丟失了一些東西?通過「to SQL」,大概你是指從Oracle的SQL風格到SQL Server的SQL風格...... –

+0

你想從該日期開始減去日期嗎? –

+0

你能解釋一下你想在這裏做什麼?所以我們可以提出解決方案。 –

回答

1

你似乎想要沒有時間組件的月份的第一天。如果您使用SQL Server 2012,你能做到這一點

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

declare @d datetime = getdate(); 
select datefromparts(year(@d),month(@d),1); 
相關問題