select getdate()
2. dateadd
鍦ㄥ悜鎸囧畾鏃ユ湡鍔犱笂涓娈垫椂闂寸殑鍩虹涓婏紝杩斿洖鏂扮殑
datetime 鍊
渚嬪锛氬悜鏃ユ湡鍔犱笂2澶
select dateadd(day,2,'2004-10-15') --杩斿洖锛2004-10-17
00:00:00.000
3. datediff
杩斿洖璺ㄤ袱涓寚瀹氭棩鏈熺殑鏃ユ湡鍜屾椂闂磋竟鐣屾暟銆
select datediff(day,'2004-09-01','2004-09-18')
--杩斿洖锛17
4. datepart
杩斿洖浠h〃鎸囧畾鏃ユ湡鐨勬寚瀹氭棩鏈熼儴鍒嗙殑鏁存暟銆
SELECT DATEPART(month, '2004-10-15') --杩斿洖 10
5. datename
杩斿洖浠h〃鎸囧畾鏃ユ湡鐨勬寚瀹氭棩鏈熼儴鍒嗙殑瀛楃涓
SELECT datename(weekday, '2004-10-15')
--杩斿洖锛氭槦鏈熶簲
6. day(), month(),year() --鍙互涓巇atepart瀵圭収涓涓
select
褰撳墠鏃ユ湡=convert(varchar(10),getdate(),120)
,褰撳墠鏃堕棿=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select
鏈勾绗灏戝懆=datename(week,'2004-10-15')
,浠婂ぉ鏄懆鍑=datename(weekday,'2004-10-15')
| 鍑芥暟 | 鍙傛暟/鍔熻兘 |
| GetDate( ) | 杩斿洖绯荤粺鐩墠鐨勬棩鏈熶笌鏃堕棿 |
| DateDiff (interval,date1,date2) | 浠nterval 鎸囧畾鐨勬柟寮忥紝杩斿洖date2 涓巇ate1涓や釜鏃ユ湡涔嬮棿鐨勫樊鍊 date2-date1 |
| DateAdd (interval,number,date) | 浠nterval鎸囧畾鐨勬柟寮忥紝鍔犱笂number涔嬪悗鐨勬棩鏈 |
| DatePart (interval,date) | 杩斿洖鏃ユ湡date涓紝interval鎸囧畾閮ㄥ垎鎵瀵瑰簲鐨勬暣鏁板 |
| DateName (interval,date) | 杩斿洖鏃ユ湡date涓紝interval鎸囧畾閮ㄥ垎鎵瀵瑰簲鐨勫瓧绗︿覆鍚嶇О |
鍙傛暟 interval鐨勮瀹氬煎涓嬶細
| 鍊 | 缂 鍐欙紙Sql Server锛 | Access 鍜 ASP | 璇存槑 |
| Year | Yy | yyyy | 骞 1753 ~ 9999 |
| Quarter | q | 瀛 1 ~ 4 | |
| Month | Mm | m | 鏈1 ~ 12 |
| Day of year | Dy | y | 涓骞寸殑鏃ユ暟,涓骞翠腑鐨勭鍑犳棩 1-366 |
| Day | Dd | d | 鏃ワ紝1-31 |
| Weekday | Dw | w | 涓鍛ㄧ殑鏃ユ暟锛屼竴鍛ㄤ腑鐨勭鍑犳棩 1-7 |
| Week | Wk | ww | 鍛紝涓骞翠腑鐨勭鍑犲懆 0 ~ 51 |
| Hour | Hh | h | 鏃0 ~ 23 |
| Minute | Mi | n | 鍒嗛挓0 ~ 59 |
| Second | Ss | s | 绉 0 ~ 59 |
| Millisecond | Ms | - | 姣 0 ~ 999 |
access 鍜 asp 涓敤date()鍜宯ow()鍙栧緱绯荤粺鏃ユ湡鏃堕棿锛涘叾涓璂ateDiff,DateAdd,DatePart涔熷悓鏄兘鐢ㄤ簬Access鍜宎sp涓紝杩欎簺鍑芥暟鐨勭敤娉曚篃绫讳技
涓句緥锛
1.GetDate() 鐢ㄤ簬sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')杩斿洖鍊间负
514592 绉
DateDiff('d','2005-07-20','2005-7-25 22:56:32')杩斿洖鍊间负 5
澶
3.DatePart('w','2005-7-25 22:56:32')杩斿洖鍊间负 2
鍗虫槦鏈熶竴(鍛ㄦ棩涓1锛屽懆鍏负7)
DatePart('d','2005-7-25 22:56:32')杩斿洖鍊间负 25鍗25鍙
DatePart('y','2005-7-25 22:56:32')杩斿洖鍊间负
206鍗宠繖涓骞翠腑绗206澶
DatePart('yyyy','2005-7-25 22:56:32')杩斿洖鍊间负
2005鍗2005骞
SQL Server DATEPART() 鍑芥暟杩斿洖
SQLServer datetime 瀛楁鐨勪竴閮ㄥ垎銆
SQL Server DATEPART() 鍑芥暟鐨勮娉曟槸锛
DATEPART(portion, datetime)
鍏朵腑 datetime 鏄 SQLServer datetime
瀛楁鍜岄儴鍒嗙殑鍚嶇О鏄笅鍒椾箣涓锛 Ms for
Milliseconds
Yy for Year
Qq for Quarter of the Year
Mm for Month
Dy for the Day of the Year
Dd for Day of the Month
Wk for Week
Dw for the Day of the Week
Hh for Hour
Mi for Minute
Ss for Second
璇︾粏鐨勮鏄:
閫氬父锛屼綘闇瑕佽幏寰楀綋鍓嶆棩鏈熷拰璁$畻涓浜涘叾浠栫殑鏃ユ湡锛屼緥濡傦紝浣犵殑绋嬪簭鍙兘闇瑕佸垽鏂竴涓湀鐨勭涓澶╂垨鑰呮渶鍚
涓澶┿備綘浠ぇ閮ㄥ垎浜哄ぇ姒傞兘鐭ラ亾鎬庢牱鎶婃棩鏈熻繘琛屽垎鍓诧紙骞淬佹湀銆佹棩绛夛級锛岀劧鍚庝粎浠呯敤鍒嗗壊鍑烘潵鐨勫勾銆佹湀銆佹棩绛夋斁鍦ㄥ嚑涓嚱鏁颁腑璁$畻鍑鸿嚜宸辨墍闇瑕佺殑鏃ユ湡锛佸湪杩欑瘒鏂囩珷
閲岋紝鎴戝皢鍛婅瘔浣犲浣曚娇鐢―ATEADD鍜孌ATEDIFF鍑芥暟鏉ヨ绠楀嚭鍦ㄤ綘鐨勭▼搴忎腑鍙兘浣犺鐢ㄥ埌鐨勪竴浜涗笉鍚屾棩鏈熴
鍦ㄤ娇鐢ㄦ湰鏂囦腑鐨勪緥瀛愪箣鍓嶏紝浣犲繀椤绘敞鎰忎互涓嬬殑闂銆傚ぇ閮ㄥ垎鍙兘涓嶆槸鎵鏈変緥瀛愬湪涓嶅悓鐨勬満鍣ㄤ笂鎵ц鐨勭粨鏋滃彲鑳戒笉涓鏍凤紝杩欏畬鍏ㄧ敱鍝竴澶╂槸涓涓槦鏈熺殑绗竴澶╄繖涓缃
鍐冲畾銆傜涓澶╋紙DATEFIRST锛夎瀹氬喅瀹氫簡浣犵殑绯荤粺浣跨敤鍝竴澶╀綔涓轰竴鍛ㄧ殑绗竴澶┿傛墍鏈変互涓嬬殑渚嬪瓙閮芥槸浠ユ槦鏈熷ぉ浣滀负涓鍛ㄧ殑绗竴澶╂潵寤虹珛锛屼篃灏辨槸绗竴澶╄
缃负7銆傚亣濡備綘鐨勭涓澶╄缃笉涓鏍凤紝浣犲彲鑳介渶瑕佽皟鏁磋繖浜涗緥瀛愶紝浣垮畠鍜屼笉鍚岀殑绗竴澶╄缃浉绗﹀悎銆備綘鍙互閫氳繃@@DATEFIRST鍑芥暟鏉ユ鏌ョ涓澶╄缃
涓轰簡鐞嗚В杩欎簺渚嬪瓙锛屾垜浠厛澶嶄範涓涓婦ATEDIFF鍜孌ATEADD鍑芥暟銆侱ATEDIFF鍑芥暟璁$畻涓や釜鏃ユ湡涔嬮棿鐨勫皬鏃躲佸ぉ銆佸懆銆佹湀銆佸勾绛夋椂闂撮棿闅旀绘暟銆
DATEADD鍑芥暟璁$畻涓涓棩鏈熼氳繃缁欐椂闂撮棿闅斿姞鍑忔潵鑾峰緱涓涓柊鐨勬棩鏈熴傝浜嗚В鏇村鐨凞ATEDIFF鍜孌ATEADD鍑芥暟浠ュ強鏃堕棿闂撮殧鍙互闃呰寰蒋鑱旀満
甯姪銆
浣跨敤DATEDIFF鍜孌ATEADD鍑芥暟鏉ヨ绠楁棩鏈燂紝鍜屾湰鏉ヤ粠褰撳墠鏃ユ湡杞崲鍒颁綘闇瑕佺殑鏃ユ湡鐨勮冭檻鏂规硶鏈夌偣涓嶅悓銆備綘蹇呴』浠庢椂闂撮棿闅旇繖涓柟闈㈡潵鑰冭檻銆傛瘮濡傦紝
浠庡綋鍓嶆棩鏈熷埌浣犺寰楀埌鐨勬棩鏈熶箣闂存湁澶氬皯鏃堕棿闂撮殧锛屾垨鑰咃紝浠庝粖澶╁埌鏌愪竴澶╋紙姣斿1900-1-1锛変箣闂存湁澶氬皯鏃堕棿闂撮殧锛岀瓑绛夈傜悊瑙f庢牱鐫鐪间簬鏃堕棿闂撮殧鏈夊姪浜
浣犺交鏉剧殑鐞嗚В鎴戠殑涓嶅悓鐨勬棩鏈熻绠椾緥瀛愩
涓涓湀鐨勭涓澶
绗竴涓緥瀛愶紝鎴戝皢鍛婅瘔浣犲浣曚粠褰撳墠鏃ユ湡鍘昏繖涓湀鐨勬渶鍚庝竴澶┿傝娉ㄦ剰锛氳繖涓緥瀛愪互鍙婅繖绡囨枃绔犱腑鐨勫叾浠栦緥瀛愰兘灏嗗彧浣跨敤DATEDIFF鍜孌ATEADD鍑芥暟鏉ヨ绠楁垜浠兂瑕佺殑鏃ユ湡銆傛瘡涓涓緥瀛愰兘灏嗛氳繃璁$畻浣嗗墠鐨勬椂闂撮棿闅旓紝鐒跺悗杩涜鍔犲噺鏉ュ緱鍒版兂瑕佽绠楃殑鏃ユ湡銆
杩欐槸璁$畻涓涓湀绗竴澶╃殑SQL 鑴氭湰锛
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
鎴戜滑鎶婅繖涓鍙ュ垎寮鏉ョ湅鐪嬪畠鏄浣曞伐浣滅殑銆傛渶鏍稿績鐨勫嚱鏁版槸getdate()锛屽ぇ閮ㄥ垎浜洪兘鐭ラ亾杩欎釜鏄繑鍥炲綋鍓嶇殑鏃ユ湡鍜屾椂闂寸殑鍑芥暟銆備笅涓涓墽琛岀殑鍑芥暟
DATEDIFF(mm,0,getdate())鏄绠楀綋鍓嶆棩鏈熷拰鈥1900-01-01
00:00:00.000鈥濊繖涓棩鏈熶箣闂寸殑鏈堟暟銆傝浣忥細鏃舵湡鍜屾椂闂村彉閲忓拰姣涓鏍锋槸浠庘1900-01-01
00:00:00.000鈥濆紑濮嬭绠楃殑銆傝繖灏辨槸涓轰粈涔堜綘鍙互鍦―ATEDIFF鍑芥暟涓寚瀹氱涓涓椂闂磋〃杈惧紡涓衡0鈥濄備笅涓涓嚱鏁版槸DATEADD锛屽鍔犲綋
鍓嶆棩鏈熷埌鈥1900-01-01鈥濈殑鏈堟暟銆傞氳繃澧炲姞棰勫畾涔夌殑鏃ユ湡鈥1900-01-01鈥濆拰褰撳墠鏃ユ湡鐨勬湀鏁帮紝鎴戜滑鍙互鑾峰緱杩欎釜鏈堢殑绗竴澶┿傚彟澶栵紝璁$畻鍑烘潵
鐨勬棩鏈熺殑鏃堕棿閮ㄥ垎灏嗕細鏄00:00:00.000鈥濄
杩欎釜璁$畻鐨鎶宸鏄厛璁$畻褰撳墠鏃ユ湡鍒扳1900-01-01鈥濈殑鏃堕棿闂撮殧鏁帮紝鐒跺悗鎶婂畠鍔犲埌鈥1900-01-01鈥濅笂鏉ヨ幏寰楃壒娈婄殑鏃ユ湡锛岃繖涓鎶宸鍙互鐢ㄦ潵璁$畻寰堝涓嶅悓鐨勬棩鏈熴備笅涓涓緥瀛愪篃鏄敤杩欎釜鎶宸浠庡綋鍓嶆棩鏈熸潵浜х敓涓嶅悓鐨勬棩鏈熴
鏈懆鐨勬槦鏈熶竴
杩欓噷鎴戞槸鐢ㄥ懆(wk)鐨勬椂闂撮棿闅旀潵璁$畻鍝竴澶╂槸鏈懆鐨勬槦鏈熶竴銆
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
涓骞寸殑绗竴澶
鐜板湪鐢ㄥ勾(yy)鐨勬椂闂撮棿闅旀潵鏄剧ず杩欎竴骞寸殑绗竴澶┿
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
瀛e害鐨勭涓澶
鍋囧浣犺璁$畻杩欎釜瀛e害鐨勭涓澶╋紝杩欎釜渚嬪瓙鍛婅瘔浣犺濡備綍鍋氥
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
褰撳ぉ鐨勫崐澶
鏇剧粡闇瑕侀氳繃getdate()鍑芥暟涓轰簡杩斿洖鏃堕棿鍊兼埅鎺夋椂闂撮儴鍒嗭紝灏变細鑰冭檻鍒板綋鍓嶆棩鏈熸槸涓嶆槸鍦ㄥ崐澶溿傚亣濡傝繖鏍凤紝杩欎釜渚嬪瓙浣跨敤DATEDIFF鍜孌ATEADD鍑芥暟鏉ヨ幏寰楀崐澶滅殑鏃堕棿鐐广
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
娣卞叆DATEDIFF鍜孌ATEADD鍑芥暟璁$畻
浣犲彲浠ユ槑鐧斤紝閫氳繃浣跨敤绠鍗曠殑DATEDIFF鍜孌ATEADD鍑芥暟璁$畻锛屼綘鍙互鍙戠幇寰堝涓嶅悓鐨勫彲鑳芥湁鎰忎箟鐨勬棩鏈熴
鐩墠涓烘鐨勬墍鏈変緥瀛愬彧鏄粎浠呰绠楀綋鍓嶇殑鏃堕棿鍜屸1900-01-01鈥濅箣闂寸殑鏃堕棿闂撮殧鏁伴噺锛岀劧鍚庢妸瀹冨姞鍒扳1900-01-01鈥濈殑鏃堕棿闂撮殧涓婃潵璁$畻鍑烘棩
鏈熴傚亣瀹氫綘淇敼鏃堕棿闂撮殧鐨勬暟閲忥紝鎴栬呬娇鐢ㄤ笉鍚岀殑鏃堕棿闂撮殧鏉ヨ皟鐢―ATEADD鍑芥暟锛屾垨鑰呭噺鍘绘椂闂撮棿闅旇屼笉鏄鍔狅紝閭d箞閫氳繃杩欎簺灏忕殑璋冩暣浣犲彲浠ュ彂鐜板拰澶氫笉鍚
鐨勬棩鏈熴
杩欓噷鏈夊洓涓緥瀛愪娇鐢ㄥ彟澶栦竴涓狣ATEADD鍑芥暟鏉ヨ绠楁渶鍚庝竴澶╂潵鍒嗗埆鏇挎崲DATEADD鍑芥暟鍓嶅悗涓や釜鏃堕棿闂撮殧銆
涓婁釜鏈堢殑鏈鍚庝竴澶
杩欐槸涓涓绠椾笂涓湀鏈鍚庝竴澶╃殑渚嬪瓙銆傚畠閫氳繃浠庝竴涓湀鐨勬渶鍚庝竴澶╄繖涓緥瀛愪笂鍑忓幓3姣鏉ヨ幏寰椼傛湁涓鐐硅璁颁綇锛屽湪Sql
Server涓椂闂存槸绮剧‘鍒3姣銆傝繖灏辨槸涓轰粈涔堟垜闇瑕佸噺鍘3姣鏉ヨ幏寰楁垜瑕佺殑鏃ユ湡鍜屾椂闂淬
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),
0))
璁$畻鍑烘潵鐨勬棩鏈熺殑鏃堕棿閮ㄥ垎鍖呭惈浜嗕竴涓猄ql
Server鍙互璁板綍鐨勪竴澶╃殑鏈鍚庢椂鍒(鈥23:59:59:997鈥)鐨勬椂闂淬
鍘诲勾鐨勬渶鍚庝竴澶
杩炴帴涓婇潰鐨勪緥瀛愶紝涓轰簡瑕佸緱鍒板幓骞寸殑鏈鍚庝竴澶╋紝浣犻渶瑕佸湪浠婂勾鐨勭涓澶╀笂鍑忓幓3姣銆
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()),
0))
鏈湀鐨勬渶鍚庝竴澶
鐜板湪锛屼负浜嗚幏寰楁湰鏈堢殑鏈鍚庝竴澶╋紝鎴戦渶瑕佺◢寰慨鏀逛竴涓嬭幏寰椾笂涓湀鐨勬渶鍚庝竴澶╃殑璇彞銆備慨鏀归渶瑕佺粰鐢―ATEDIFF姣旇緝褰撳墠鏃ユ湡鍜屸1900-01-01鈥濊繑
鍥炵殑鏃堕棿闂撮殧涓婂姞1銆傞氳繃鍔1涓湀锛屾垜璁$畻鍑轰笅涓湀鐨勭涓澶╋紝鐒跺悗鍑忓幓3姣锛岃繖鏍峰氨璁$畻鍑轰簡杩欎釜鏈堢殑鏈鍚庝竴澶┿傝繖鏄绠楁湰鏈堟渶鍚庝竴澶╃殑SQL鑴氭湰銆
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1,
0))
鏈勾鐨勬渶鍚庝竴澶
浣犵幇鍦ㄥ簲璇ユ帉鎻¤繖涓殑鍋氭硶锛岃繖鏄绠楁湰骞存渶鍚庝竴澶╄剼鏈
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1,
0))
鏈湀鐨勭涓涓槦鏈熶竴
濂戒簡锛岀幇鍦ㄦ槸鏈鍚庝竴涓緥瀛愩傝繖閲屾垜瑕佽绠楄繖涓湀鐨勭涓涓槦鏈熶竴銆傝繖鏄绠楃殑鑴氭湰銆
select DATEADD(wk, DATEDIFF(wk,0,
dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
鍦ㄨ繖涓緥瀛愰噷锛屾垜浣跨敤浜嗏滄湰鍛ㄧ殑鏄熸湡涓鈥濈殑鑴氭湰锛屽苟浣滀簡涓鐐圭偣淇敼銆備慨鏀圭殑閮ㄥ垎鏄妸鍘熸潵鑴氭湰涓済etdate()鈥濋儴鍒嗘浛鎹㈡垚璁$畻鏈湀鐨勭6澶╋紝鍦ㄨ绠椾腑鐢ㄦ湰鏈堢殑绗6澶╂潵鏇挎崲褰撳墠鏃ユ湡浣垮緱璁$畻鍙互鑾峰緱杩欎釜鏈堢殑绗竴涓槦鏈熶竴銆
鎬荤粨
鎴戝笇鏈涜繖浜涗緥瀛愬彲浠ュ湪浣犵敤DATEADD鍜孌ATEDIFF鍑芥暟璁$畻鏃ユ湡鏃剁粰浣犱竴鐐瑰惎鍙戙傞氳繃浣跨敤杩欎釜璁$畻鏃ユ湡鐨勬椂闂撮棿闅旂殑鏁板鏂规硶锛屾垜鍙戠幇涓轰簡鏄剧ず涓や釜
鏃ユ湡涔嬮棿闂撮殧鐨勬湁鐢ㄥ巻娉曟槸鏈変环鍊肩殑銆傛敞鎰忥紝杩欏彧鏄绠楀嚭杩欎簺鏃ユ湡鐨勪竴绉嶆柟娉曘傝鐗㈣锛岃繕鏈夊緢澶氭柟娉曞彲浠ュ緱鍒扮浉鍚岀殑璁$畻缁撴灉銆傚亣濡備綘鏈夊叾浠栫殑鏂规硶锛岄偅寰堜笉
閿欙紝瑕佹槸浣犳病鏈夛紝鎴戝笇鏈涜繖浜涗緥瀛愬彲浠ョ粰浣犱竴浜涘惎鍙戯紝褰撲綘瑕佺敤DATEADD鍜孌ATEDIFF鍑芥暟璁$畻浣犵▼搴忓彲鑳借鐢ㄥ埌鐨勬棩鏈熸椂銆
---------------------------------------------------------------
闄勫綍锛屽叾浠栨棩鏈熷鐞嗘柟娉
1)鍘绘帀鏃跺垎绉
declare @ datetime
set @ = getdate() --'2003-7-1 10:00:00'
SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0)
2锛夋樉绀烘槦鏈熷嚑
select datename(weekday,getdate())
3锛夊浣曞彇寰楁煇涓湀鐨勫ぉ鏁
declare @m int
set @m=2 --鏈堜唤
select datediff(day,'2003-'+cast(@m as varchar)+'-15'
,'2003-'+cast(@m+1 as varchar)+'-15')
鍙﹀锛屽彇寰楁湰鏈堝ぉ鏁
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鍑芥暟鍖烘渶鍚庝竴澶
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
鎴栬
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))




发表于 2009-1-5 19:48
| 











