锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍦ㄤ嬌鐢ㄦ湰鏂囦腑鐨勪緥瀛愪箣鍓嶏紝浣犲繀欏繪敞鎰忎互涓嬬殑闂銆傚ぇ閮ㄥ垎鍙兘涓嶆槸鎵鏈変緥瀛愬湪涓嶅悓鐨勬満鍣ㄤ笂鎵ц鐨勭粨鏋滃彲鑳戒笉涓鏍鳳紝榪欏畬鍏ㄧ敱鍝竴澶╂槸涓涓槦鏈熺殑絎竴澶╄繖涓緗喅瀹氥傜涓澶╋紙DATEFIRST錛夎瀹氬喅瀹氫簡浣犵殑緋葷粺浣跨敤鍝竴澶╀綔涓轟竴鍛ㄧ殑絎竴澶┿傛墍鏈変互涓嬬殑渚嬪瓙閮芥槸浠ユ槦鏈熷ぉ浣滀負涓鍛ㄧ殑絎竴澶╂潵寤虹珛錛屼篃灝辨槸絎竴澶╄緗負7銆傚亣濡備綘鐨勭涓澶╄緗笉涓鏍鳳紝浣犲彲鑳介渶瑕佽皟鏁磋繖浜涗緥瀛愶紝浣垮畠鍜屼笉鍚岀殑絎竴澶╄緗浉絎﹀悎銆備綘鍙互閫氳繃@@DATEFIRST鍑芥暟鏉ユ鏌ョ涓澶╄緗?nbsp;
涓轟簡鐞嗚В榪欎簺渚嬪瓙錛屾垜浠厛澶嶄範涓涓婦ATEDIFF鍜孌ATEADD鍑芥暟銆侱ATEDIFF鍑芥暟璁$畻涓や釜鏃ユ湡涔嬮棿鐨勫皬鏃躲佸ぉ銆佸懆銆佹湀銆佸勾絳夋椂闂撮棿闅旀繪暟銆侱ATEADD鍑芥暟璁$畻涓涓棩鏈熼氳繃緇欐椂闂撮棿闅斿姞鍑忔潵鑾峰緱涓涓柊鐨勬棩鏈熴傝浜嗚В鏇村鐨凞ATEDIFF鍜孌ATEADD鍑芥暟浠ュ強鏃墮棿闂撮殧鍙互闃呰寰蔣鑱旀満甯姪銆?nbsp;
浣跨敤DATEDIFF鍜孌ATEADD鍑芥暟鏉ヨ綆楁棩鏈燂紝鍜屾湰鏉ヤ粠褰撳墠鏃ユ湡杞崲鍒頒綘闇瑕佺殑鏃ユ湡鐨勮冭檻鏂規硶鏈夌偣涓嶅悓銆備綘蹇呴』浠庢椂闂撮棿闅旇繖涓柟闈㈡潵鑰冭檻銆傛瘮濡傦紝浠庡綋鍓嶆棩鏈熷埌浣犺寰楀埌鐨勬棩鏈熶箣闂存湁澶氬皯鏃墮棿闂撮殧錛屾垨鑰咃紝浠庝粖澶╁埌鏌愪竴澶╋紙姣斿1900-1-1錛変箣闂存湁澶氬皯鏃墮棿闂撮殧錛岀瓑絳夈傜悊瑙f庢牱鐫鐪間簬鏃墮棿闂撮殧鏈夊姪浜庝綘杞繪澗鐨勭悊瑙f垜鐨勪笉鍚岀殑鏃ユ湡璁$畻渚嬪瓙銆?nbsp;
涓涓湀鐨勭涓澶?nbsp;
絎竴涓緥瀛愶紝鎴戝皢鍛婅瘔浣犲浣曚粠褰撳墠鏃ユ湡鍘昏繖涓湀鐨勬渶鍚庝竴澶┿傝娉ㄦ剰錛氳繖涓緥瀛愪互鍙婅繖綃囨枃绔犱腑鐨勫叾浠栦緥瀛愰兘灝嗗彧浣跨敤DATEDIFF鍜孌ATEADD鍑芥暟鏉ヨ綆楁垜浠兂瑕佺殑鏃ユ湡銆傛瘡涓涓緥瀛愰兘灝嗛氳繃璁$畻浣嗗墠鐨勬椂闂撮棿闅旓紝鐒跺悗榪涜鍔犲噺鏉ュ緱鍒版兂瑕佽綆楃殑鏃ユ湡銆?nbsp;
榪欐槸璁$畻涓涓湀絎竴澶╃殑SQL 鑴氭湰錛?nbsp;
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
鎴戜滑鎶婅繖涓鍙ュ垎寮鏉ョ湅鐪嬪畠鏄浣曞伐浣滅殑銆傛渶鏍稿績鐨勫嚱鏁版槸getdate()錛屽ぇ閮ㄥ垎浜洪兘鐭ラ亾榪欎釜鏄繑鍥炲綋鍓嶇殑鏃ユ湡鍜屾椂闂寸殑鍑芥暟銆備笅涓涓墽琛岀殑鍑芥暟DATEDIFF(mm,0,getdate())鏄綆楀綋鍓嶆棩鏈熷拰鈥?900-01-01 00:00:00.000鈥濊繖涓棩鏈熶箣闂寸殑鏈堟暟銆傝浣忥細鏃舵湡鍜屾椂闂村彉閲忓拰姣涓鏍鋒槸浠庘?900-01-01 00:00:00.000鈥濆紑濮嬭綆楃殑銆傝繖灝辨槸涓轟粈涔堜綘鍙互鍦―ATEDIFF鍑芥暟涓寚瀹氱涓涓椂闂磋〃杈懼紡涓衡?鈥濄備笅涓涓嚱鏁版槸DATEADD錛屽鍔犲綋鍓嶆棩鏈熷埌鈥?900-01-01鈥濈殑鏈堟暟銆傞氳繃澧炲姞棰勫畾涔夌殑鏃ユ湡鈥?900-01-01鈥濆拰褰撳墠鏃ユ湡鐨勬湀鏁幫紝鎴戜滑鍙互鑾峰緱榪欎釜鏈堢殑絎竴澶┿傚彟澶栵紝璁$畻鍑烘潵鐨勬棩鏈熺殑鏃墮棿閮ㄥ垎灝嗕細鏄?0:00:00.000鈥濄?nbsp;
榪欎釜璁$畻鐨勬妧宸ф槸鍏堣綆楀綋鍓嶆棩鏈熷埌鈥?900-01-01鈥濈殑鏃墮棿闂撮殧鏁幫紝鐒跺悗鎶婂畠鍔犲埌鈥?900-01-01鈥濅笂鏉ヨ幏寰楃壒孌婄殑鏃ユ湡錛岃繖涓妧宸у彲浠ョ敤鏉ヨ綆楀緢澶氫笉鍚岀殑鏃ユ湡銆備笅涓涓緥瀛愪篃鏄敤榪欎釜鎶宸т粠褰撳墠鏃ユ湡鏉ヤ駭鐢熶笉鍚岀殑鏃ユ湡銆?nbsp;
鏈懆鐨勬槦鏈熶竴
榪欓噷鎴戞槸鐢ㄥ懆(wk)鐨勬椂闂撮棿闅旀潵璁$畻鍝竴澶╂槸鏈懆鐨勬槦鏈熶竴銆?nbsp;
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
涓騫寸殑絎竴澶?nbsp;
鐜板湪鐢ㄥ勾(yy)鐨勬椂闂撮棿闅旀潵鏄劇ず榪欎竴騫寸殑絎竴澶┿?nbsp;
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
瀛e害鐨勭涓澶?nbsp;
鍋囧浣犺璁$畻榪欎釜瀛e害鐨勭涓澶╋紝榪欎釜渚嬪瓙鍛婅瘔浣犺濡備綍鍋氥?nbsp;
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
褰撳ぉ鐨勫崐澶?nbsp;
鏇劇粡闇瑕侀氳繃getdate()鍑芥暟涓轟簡榪斿洖鏃墮棿鍊兼埅鎺夋椂闂撮儴鍒嗭紝灝變細鑰冭檻鍒板綋鍓嶆棩鏈熸槸涓嶆槸鍦ㄥ崐澶溿傚亣濡傝繖鏍鳳紝榪欎釜渚嬪瓙浣跨敤DATEDIFF鍜孌ATEADD鍑芥暟鏉ヨ幏寰楀崐澶滅殑鏃墮棿鐐廣?nbsp;
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
娣卞叆DATEDIFF鍜孌ATEADD鍑芥暟璁$畻
浣犲彲浠ユ槑鐧斤紝閫氳繃浣跨敤綆鍗曠殑DATEDIFF鍜孌ATEADD鍑芥暟璁$畻錛屼綘鍙互鍙戠幇寰堝涓嶅悓鐨勫彲鑳芥湁鎰忎箟鐨勬棩鏈熴?nbsp;
鐩墠涓烘鐨勬墍鏈変緥瀛愬彧鏄粎浠呰綆楀綋鍓嶇殑鏃墮棿鍜屸?900-01-01鈥濅箣闂寸殑鏃墮棿闂撮殧鏁伴噺錛岀劧鍚庢妸瀹冨姞鍒扳?900-01-01鈥濈殑鏃墮棿闂撮殧涓婃潵璁$畻鍑烘棩鏈熴傚亣瀹氫綘淇敼鏃墮棿闂撮殧鐨勬暟閲忥紝鎴栬呬嬌鐢ㄤ笉鍚岀殑鏃墮棿闂撮殧鏉ヨ皟鐢―ATEADD鍑芥暟錛屾垨鑰呭噺鍘繪椂闂撮棿闅旇屼笉鏄鍔狅紝閭d箞閫氳繃榪欎簺灝忕殑璋冩暣浣犲彲浠ュ彂鐜板拰澶氫笉鍚岀殑鏃ユ湡銆?nbsp;
榪欓噷鏈夊洓涓緥瀛愪嬌鐢ㄥ彟澶栦竴涓狣ATEADD鍑芥暟鏉ヨ綆楁渶鍚庝竴澶╂潵鍒嗗埆鏇挎崲DATEADD鍑芥暟鍓嶅悗涓や釜鏃墮棿闂撮殧銆?nbsp;
涓婁釜鏈堢殑鏈鍚庝竴澶?nbsp;
榪欐槸涓涓綆椾笂涓湀鏈鍚庝竴澶╃殑渚嬪瓙銆傚畠閫氳繃浠庝竴涓湀鐨勬渶鍚庝竴澶╄繖涓緥瀛愪笂鍑忓幓3姣鏉ヨ幏寰椼傛湁涓鐐硅璁頒綇錛屽湪Sql Server涓椂闂存槸綺劇‘鍒?姣銆傝繖灝辨槸涓轟粈涔堟垜闇瑕佸噺鍘?姣鏉ヨ幏寰楁垜瑕佺殑鏃ユ湡鍜屾椂闂淬?nbsp;
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
璁$畻鍑烘潵鐨勬棩鏈熺殑鏃墮棿閮ㄥ垎鍖呭惈浜嗕竴涓猄ql Server鍙互璁板綍鐨勪竴澶╃殑鏈鍚庢椂鍒?鈥?3:59:59:997鈥?鐨勬椂闂淬?nbsp;
鍘誨勾鐨勬渶鍚庝竴澶?nbsp;
榪炴帴涓婇潰鐨勪緥瀛愶紝涓轟簡瑕佸緱鍒板幓騫寸殑鏈鍚庝竴澶╋紝浣犻渶瑕佸湪浠婂勾鐨勭涓澶╀笂鍑忓幓3姣銆?nbsp;
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
鏈湀鐨勬渶鍚庝竴澶?nbsp;
鐜板湪錛屼負浜嗚幏寰楁湰鏈堢殑鏈鍚庝竴澶╋紝鎴戦渶瑕佺◢寰慨鏀逛竴涓嬭幏寰椾笂涓湀鐨勬渶鍚庝竴澶╃殑璇彞銆備慨鏀歸渶瑕佺粰鐢―ATEDIFF姣旇緝褰撳墠鏃ユ湡鍜屸?900-01-01鈥濊繑鍥炵殑鏃墮棿闂撮殧涓婂姞1銆傞氳繃鍔?涓湀錛屾垜璁$畻鍑轟笅涓湀鐨勭涓澶╋紝鐒跺悗鍑忓幓3姣錛岃繖鏍峰氨璁$畻鍑轟簡榪欎釜鏈堢殑鏈鍚庝竴澶┿傝繖鏄綆楁湰鏈堟渶鍚庝竴澶╃殑SQL鑴氭湰銆?nbsp;
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
鏈勾鐨勬渶鍚庝竴澶?nbsp;
浣犵幇鍦ㄥ簲璇ユ帉鎻¤繖涓殑鍋氭硶錛岃繖鏄綆楁湰騫存渶鍚庝竴澶╄剼鏈?nbsp;
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))銆?nbsp;
鏈湀鐨勭涓涓槦鏈熶竴
濂戒簡錛岀幇鍦ㄦ槸鏈鍚庝竴涓緥瀛愩傝繖閲屾垜瑕佽綆楄繖涓湀鐨勭涓涓槦鏈熶竴銆傝繖鏄綆楃殑鑴氭湰銆?nbsp;
select DATEADD(wk, DATEDIFF(wk,0,
dateadd(dd,6-datepart(day,getdate()),getdate())
), 0)
鍦ㄨ繖涓緥瀛愰噷錛屾垜浣跨敤浜嗏滄湰鍛ㄧ殑鏄熸湡涓鈥濈殑鑴氭湰錛屽茍浣滀簡涓鐐圭偣淇敼銆備慨鏀圭殑閮ㄥ垎鏄妸鍘熸潵鑴氭湰涓済etdate()鈥濋儴鍒嗘浛鎹㈡垚璁$畻鏈湀鐨勭6澶╋紝鍦ㄨ綆椾腑鐢ㄦ湰鏈堢殑絎?澶╂潵鏇挎崲褰撳墠鏃ユ湡浣垮緱璁$畻鍙互鑾峰緱榪欎釜鏈堢殑絎竴涓槦鏈熶竴銆?nbsp;
鎬葷粨
鎴戝笇鏈涜繖浜涗緥瀛愬彲浠ュ湪浣犵敤DATEADD鍜孌ATEDIFF鍑芥暟璁$畻鏃ユ湡鏃剁粰浣犱竴鐐瑰惎鍙戙傞氳繃浣跨敤榪欎釜璁$畻鏃ユ湡鐨勬椂闂撮棿闅旂殑鏁板鏂規硶錛屾垜鍙戠幇涓轟簡鏄劇ず涓や釜鏃ユ湡涔嬮棿闂撮殧鐨勬湁鐢ㄥ巻娉曟槸鏈変環鍊肩殑銆傛敞鎰忥紝榪欏彧鏄綆楀嚭榪欎簺鏃ユ湡鐨勪竴縐嶆柟娉曘傝鐗㈣錛岃繕鏈夊緢澶氭柟娉曞彲浠ュ緱鍒扮浉鍚岀殑璁$畻緇撴灉銆傚亣濡備綘鏈夊叾浠栫殑鏂規硶錛岄偅寰堜笉閿欙紝瑕佹槸浣犳病鏈夛紝鎴戝笇鏈涜繖浜涗緥瀛愬彲浠ョ粰浣犱竴浜涘惎鍙戯紝褰撲綘瑕佺敤DATEADD鍜孌ATEDIFF鍑芥暟璁$畻浣犵▼搴忓彲鑳借鐢ㄥ埌鐨勬棩鏈熸椂銆?nbsp;
---------------------------------------------------------------
闄勫綍錛屽叾浠栨棩鏈熷鐞嗘柟娉?nbsp;
1)鍘繪帀鏃跺垎縐?nbsp;
declare @ datetime
set @ = getdate() --'2003-7-1 10:00:00'
SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0)
2錛夋樉紺烘槦鏈熷嚑
select datename(weekday,getdate())
3錛夊浣曞彇寰楁煇涓湀鐨勫ぉ鏁?nbsp;
declare @m int
set @m=2 --鏈堜喚
select datediff(day,'2003-'+cast(@m as varchar)+'-15' ,'2003-'+cast(@m+1 as varchar)+'-15')
鍙﹀錛屽彇寰楁湰鏈堝ぉ鏁?nbsp;
select datediff(day,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate()) as varchar)+'-15' ,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate())+1 as varchar)+'-15')
鎴栬呬嬌鐢ㄨ綆楁湰鏈堢殑鏈鍚庝竴澶╃殑鑴氭湰錛岀劧鍚庣敤DAY鍑芥暟鍖烘渶鍚庝竴澶?nbsp;
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))
4錛夊垽鏂槸鍚﹂棸騫達細
SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then '騫沖勾' else '闂板勾' end
鎴栬?nbsp;
select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01'))
when 28 then '騫沖勾' else '闂板勾' end
5錛変竴涓搴﹀灝戝ぉ
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time))
瑕佹煡鐪嬮噸澶嶇殑璁板綍錛屽彲浠?/P>
select Adminno,count(*) from admin group by Adminno having count(*)>1
HAVING 瀛愬彞瀵?GROUP BY 瀛愬彞璁劇疆鏉′歡鐨勬柟寮忎笌 WHERE 瀛愬彞鍜?SELECT 璇彞浜や簰鐨勬柟寮忕被浼箋俉HERE 瀛愬彞鎼滅儲鏉′歡鍦ㄨ繘琛屽垎緇勬搷浣滀箣鍓嶅簲鐢紱鑰?HAVING 鎼滅儲鏉′歡鍦ㄨ繘琛屽垎緇勬搷浣滀箣鍚庡簲鐢ㄣ侶AVING 璇硶涓?WHERE 璇硶綾諱技錛屼絾 HAVING 鍙互鍖呭惈鑱氬悎鍑芥暟銆侶AVING 瀛愬彞鍙互寮曠敤閫夋嫨鍒楄〃涓嚭鐜扮殑浠繪剰欏廣?/P>