上一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()-90),0) [/quote]
不可以減 90 謝謝
下一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()+90),0)
不可以加 90 謝謝
3個月 =/= 90 謝謝
應該說是
答案都是對的
但是表達方式很特別
31+28+31 應該是 -90不會超過
31+30+31 應該是 +90不會超過 但有可能不是下一季
謝謝阿伯指正!
下一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,1,getdate())),0)
建議 加一季,不要加 90天
IF 今天是 4/1 + 90天 還是在同一季 因此會出現下一季第一天 = 4/1
也可使用
SELECT DATEADD(qq,DATEDIFF(qq,0,dateadd(mm,3,getdate())),0)
richardsuma 大大拋磚 我是瓦片 共築 IT 大樓
上一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,dateadd(mm,-2,getdate())),0)
剛測試過是ok的!
修正:
上一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,dateadd(mm,-3,'2013-02-28')),0)
阿伯大出神入化,拜
幫板主整理一下
<pre class="c" name="code">下一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,1,getdate())),0)
本季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,0,getdate())),0)
上一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,-1,getdate())),0)
加送每月最後一天語法
<pre class="c" name="code">SELECT DATEADD(d,-1,convert(datetime,convert(char(7),dateadd(m,1,getdate()),111)+'/01'))
觀念:每月最後一天=(下個月第一天 - 1 天)
延伸:
<pre class="c" name="code">下季最後一天
SELECT DATEADD(d,-1,(SELECT DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,2,getdate())),0)))
本季最後一天
SELECT DATEADD(d,-1,(SELECT DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,1,getdate())),0)))
上季最後一天
SELECT DATEADD(d,-1,(SELECT DATEADD(qq,DATEDIFF(qq,0,DATEADD(qq,0,getdate())),0)))
本季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
上一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()-90),0)
下一季第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()+90),0)
可以參考:
http://miisoo.blogspot.tw/2008/04/sql-server-select-isdate2004-03-01-1.html
辛苦點, 寫個Function來處理吧!
<pre class="c" name="code">CREATE FUNCTION dbo.QuarterFirst(@dToday DATETIME, @sType NVARCHAR(1))
RETURNS DATETIME
AS
BEGIN;
DECLARE @iMonth int;
DECLARE @iYear int;
DECLARE @dReturn DATETIME;
DECLARE @iQuarter int;
SET @iMonth = MONTH(@dToday);
SET @iYear = YEAR(@dToday);
IF @sType = 'L'
SET @iQuarter = CEILING(@iMonth / 3.0) - 1;
ELSE
SET @iQuarter = CEILING(@iMonth / 3.0);
IF @iQuarter = 0 BEGIN
SET @iQuarter = 4;
SET @iYear = @iYear - 1;
END;
SET @dReturn = CONVERT(DATETIME, LTRIM(STR(@iYear)) + '/' + LTRIM((@iQuarter - 1) * 3 + 1) + '/1')
RETURN @dReturn;
END;
測試結果:
第二個參數控制本季(T)或上季(L).
讚
大師出手 天下臣服
這種問題都要問,還自稱大師,還說薪水多高,產品多好
已知是每月第一天
已知是每季,一年有四季,一季有3月...
全部都是常數
跟1+1=2問題一樣簡單
不好意思我不是回simon581923的文
ITHome的排版有點怪,只有在你的下面有回應按鈕可按
:simon581923( iT邦大師2級 )
賽大 乃認證過的大師
pantc328 大大如果不服可以告 ithome
ithome
賽大 等大師級人才濟濟
也有一些連一個 [一個系統][一個功能] 都做不出來, 天天都是負面的話
這樣的人真的很特別
但也凸顯大師級人才的珍貴
大家加油
如果工作10年還沒奧地利的起薪 1998歐元 ,
不知是國家需要懺悔
還是個人需要懺悔
外國大學畢業生
全球年輕人都可到奧地利的大學和高等專科學校留學。在留學期間,他們要學習相應學科的專業知識,並熟悉這裏的語言、文化和工作環境。憑借所學到的技能和知識,他們將成為可推動奧地利經濟發展的巨大潛力。
來自非歐盟國家的大學畢業生可以通過簡易程序取得 Rot-Weiß-Rot – Karte 並留在這裏工作。
如果他們已在某所奧地利大學、高等專科學校或經批準的私立大學至少完成了碩士學位第 2 階段學習或整個專業碩士學位的學習,在畢業之後他們可以在奧地利多待 6 個月,並利用這段時間尋找工作。
當他們找到與自己學歷相符且薪酬達到法定最低工資的工作時,就可以申請 Rot-Weiß-Rot – Karte。
2013 年最低工資標準:每月總收入 1,998 歐元
他們不需要經過積分系統評分,並且也無需 勞務市場服務部 進行替代人員的搜索程序。
可在 6 個月居留期內直接在奧地利申請 Rot-Weiß-Rot – Karte。您可以在 移民局門戶網 找到更詳細的信息。
留學期間的工作機會
來自非歐盟國家的留學生在留學期間就可以積累實習經驗,並在以下範圍內從事工作:
攻讀碩士學位第 1 階段或學士學位時最多每周 10 小時,
攻讀碩士學位第 2 階段或專業碩士學位時最多每周 20 小時
P大請安心~~
解法很多, 只是用不一樣的方法來思考而已, 順便磨一下自己的Coding能力.
哈哈~本來要回博大的文,因為只有賽大下面有回應按鈕可以按就~進來了