亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

sql 時間函數 整理的比較全了

2024-08-31 00:56:20
字體:
來源:轉載
供稿:網友
1. 當前系統日期、時間
select getdate()
2. dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000

例如:查詢目前時間最近三天的內容降序排列
select * from table where time between dateadd(day,-3,getdate()) and getdate() order by c_Id desc

3. datediff 返回跨兩個指定日期的日期和時間邊界數。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整數。
SELECT DATEPART(month, '2004-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以與datepart對照一下
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) 以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所對應的整數值
DateName (interval,date) 返回日期date中,interval指定部分所對應的字符串名稱
參數 interval的設定值如下:
值 縮 寫(Sql Server) Access 和 ASP 說明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq 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()和now()取得系統日期時間;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,這些函數的用法也類似
舉例:
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
詳細的說明:
通 常,你需要獲得當前日期和計算一些其他的日期,例如,你的程序可能需要判斷一個月的第一天或者最后一天。你們大部分人大概都知道怎樣把日期進行分割(年、 月、日等),然后僅僅用分割出來的年、月、日等放在幾個函數中計算出自己所需要的日期!在這篇文章里,我將告訴你如何使用DATEADD和 DATEDIFF函數來計算出在你的程序中可能你要用到的一些不同日期。
在使用本文中的例子之前,你 必須注意以下的問題。大部分可能不是所有例子在不同的機器上執行的結果可能不一樣,這完全由哪一天是一個星期的第一天這個設置決定。第一天 (DATEFIRST)設定決定了你的系統使用哪一天作為一周的第一天。所有以下的例子都是以星期天作為一周的第一天來建立,也就是第一天設置為7。假如你的第一天設置不一樣,你可能需要調整這些例子,使它和不同的第一天設置相符合。你可以通過@@DATEFIRST函數來檢查第一天設置。
為 了理解這些例子,我們先復習一下DATEDIFF和DATEADD函數。DATEDIFF函數計算兩個日期之間的小時、天、周、月、年等時間間隔總數。 DATEADD函數計算一個日期通過給時間間隔加減來獲得一個新的日期。要了解更多的DATEDIFF和DATEADD函數以及時間間隔可以閱讀微軟聯機 幫助。
使用DATEDIFF和DATEADD函數來計算日期,和本來從當前日期轉換到你需要的日期的考慮方法有點不同。你必須從時間間隔這個方面來考慮。比如,從當前日期到你要得到的日期之間有多少時間間隔,或者,從今天到某一天(比如1900-1-1)之間有多少時間間隔,等等。理解怎樣著眼于時間間隔有助于你輕松的理解我的不同的日期計算例子。
一個月的第一天
第一個例子,我將告訴你如何從當前日期去這個月的最后一天。請注意:這個例子以及這篇文章中的其他例子都將只使用DATEDIFF和DATEADD函數來計算我們想要的日期。每一個例子都將通過計算但前的時間間隔,然后進行加減來得到想要計算的日期。
這是計算一個月第一天的SQL 腳本:
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
我們把這個語句分開來看看它是如何工作的。最核心的函數是getdate(),大部分人都知道這個是返回當前的日期和時間的函數。下一個執行的函數DATEDIFF(mm,0,getdate())是計算當前日期和“1900-01-01 00:00:00.000”這個日期之間的月數。記?。簳r期和時間變量和毫秒一樣是從“1900-01-01 00:00:00.000”開始計算的。這就是為什么你可以在DATEDIFF函數中指定第一個時間表達式為“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)
季度的第一天
假如你要計算這個季度的第一天,這個例子告訴你該如何做。
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
當天的半夜
曾經需要通過getdate()函數為了返回時間值截掉時間部分,就會考慮到當前日期是不是在半夜。假如這樣,這個例子使用DATEDIFF和DATEADD函數來獲得半夜的時間點。
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
深入DATEDIFF和DATEADD函數計算
你可以明白,通過使用簡單的DATEDIFF和DATEADD函數計算,你可以發現很多不同的可能有意義的日期。
目前為止的所有例子只是僅僅計算當前的時間和“1900-01-01”之間的時間間隔數量,然后把它加到“1900-01-01”的時間間隔上來計算出日期。假定你修改時間間隔的數量,或者使用不同的時間間隔來調用DATEADD函數,或者減去時間間隔而不是增加,那么通過這些小的調整你可以發現和多不同的日期。
這里有四個例子使用另外一個DATEADD函數來計算最后一天來分別替換DATEADD函數前后兩個時間間隔。
上個月的最后一天
這是一個計算上個月最后一天的例子。它通過從一個月的最后一天這個例子上減去3毫秒來獲得。有一點要記住,在Sql Server中時間是精確到3毫秒。這就是為什么我需要減去3毫秒來獲得我要的日期和時間。
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
計算出來的日期的時間部分包含了一個Sql Server可以記錄的一天的最后時刻(“23:59:59:997”)的時間。
去年的最后一天
連接上面的例子,為了要得到去年的最后一天,你需要在今年的第一天上減去3毫秒。
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
本月的最后一天
現在,為了獲得本月的最后一天,我需要稍微修改一下獲得上個月的最后一天的語句。修改需要給用DATEDIFF比較當前日期和“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)
在這個例子里,我使用了“本周的星期一”的
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文一区二区视频| 欧美夫妻性视频| 日韩视频在线免费观看| 中文字幕日韩精品有码视频| 一本色道久久88综合日韩精品| 亚洲片国产一区一级在线观看| 欧美亚洲另类制服自拍| 国产精品18久久久久久麻辣| 一本大道久久加勒比香蕉| 精品久久久一区| 国产精品视频精品| 国产在线精品成人一区二区三区| 欧美激情日韩图片| 色妞在线综合亚洲欧美| 一本色道久久88综合日韩精品| 国产亚洲精品久久久久久777| 国产成人精品在线| 欧美日韩国产影院| 亚洲国产精品999| 中日韩美女免费视频网站在线观看| 午夜精品久久久久久99热| 精品国产31久久久久久| 国产成人在线视频| 2023亚洲男人天堂| 播播国产欧美激情| 日韩精品高清在线观看| 欧美成人精品激情在线观看| 国产成人av网址| 亚洲色图av在线| 亚洲综合最新在线| 亚洲一区二区福利| 久久影视免费观看| 北条麻妃一区二区三区中文字幕| 理论片在线不卡免费观看| 色综合五月天导航| 国产91精品黑色丝袜高跟鞋| 成人精品视频久久久久| 中文字幕欧美视频在线| 国产精品福利在线观看网址| 亚洲日韩欧美视频一区| 国内精品模特av私拍在线观看| 在线一区二区日韩| 国产亚洲一区二区在线| 久久91亚洲精品中文字幕奶水| 久久人人爽亚洲精品天堂| 国产aaa精品| 日产日韩在线亚洲欧美| 久久久久久网站| 一区二区国产精品视频| 欧美成aaa人片免费看| 久久久久久亚洲精品不卡| 美女999久久久精品视频| 激情av一区二区| 日韩在线播放av| 国产男女猛烈无遮挡91| 国产精品视频区| 欧美日韩免费区域视频在线观看| 欧美日韩国产激情| 国产成人亚洲综合91精品| 国产美女精品视频免费观看| 久久成人av网站| 久久精品国产精品| 国产亚洲欧美日韩精品| 色av中文字幕一区| 久久久久久久久久久免费| 亚洲最大成人在线| 欧美高清自拍一区| 久久精品视频99| 久久中文久久字幕| 精品夜色国产国偷在线| 欧美最顶级丰满的aⅴ艳星| 亚洲国产女人aaa毛片在线| 精品国产欧美成人夜夜嗨| 国产精品成人v| 精品国产一区二区在线| 亚洲欧美日韩视频一区| 国产亚洲人成网站在线观看| 26uuu日韩精品一区二区| 国产一区二区三区欧美| 伊人久久男人天堂| 久久久久久久久久久久av| 亚洲视频在线观看免费| 欧美日韩美女在线观看| 欧美xxxx综合视频| 亚洲二区中文字幕| 精品国模在线视频| 中文字幕不卡在线视频极品| 午夜精品久久久久久久久久久久久| 久久久久久国产三级电影| 亚洲另类xxxx| 国产精品美女视频网站| 久久噜噜噜精品国产亚洲综合| 精品久久久av| 久久久久国产精品免费| 亚洲一区二区免费在线| 欧美日韩国产影院| 青草青草久热精品视频在线观看| 亚洲国产日韩精品在线| 欧美成人精品h版在线观看| 亚洲91精品在线观看| 国内精品久久久| 国产精品狼人色视频一区| 国产日产久久高清欧美一区| 97av在线播放| 精品国产乱码久久久久久婷婷| 日韩av在线免费看| 精品色蜜蜜精品视频在线观看| 欧美精品18videosex性欧美| 国产精品日日做人人爱| 欧美一级电影免费在线观看| 国产一区二区三区欧美| 日韩久久免费视频| 精品福利樱桃av导航| 日韩美女激情视频| yellow中文字幕久久| 97色在线视频| 久久综合久久美利坚合众国| 亚洲第五色综合网| 久热精品视频在线| 国产精品视频中文字幕91| 欧美综合一区第一页| 日韩精品在线电影| 日本一区二区在线免费播放| 亚洲欧美国产另类| 国产精品大陆在线观看| 久久久精品欧美| 国产精品久久久999| 国产亚洲精品久久久久动| 日韩av第一页| 一区二区欧美在线| 欧美又大又硬又粗bbbbb| 亚洲男人7777| 日韩av免费观影| 亚洲国产精彩中文乱码av| 欧美制服第一页| 国产精品啪视频| 国自产精品手机在线观看视频| 国产成人精品在线观看| 亚洲高清免费观看高清完整版| 欧美日本中文字幕| 色琪琪综合男人的天堂aⅴ视频| 色综合色综合网色综合| 奇米4444一区二区三区| 操91在线视频| 亚洲一区二区久久| 日韩高清电影好看的电视剧电影| 久久精品99国产精品酒店日本| 国产一区二区在线免费视频| 亚洲a一级视频| 久久亚洲精品国产亚洲老地址| 中文字幕亚洲激情| 国产精品草莓在线免费观看| 欧美中文字幕精品| 日韩动漫免费观看电视剧高清| 欧美精品日韩三级| 国产精品福利小视频| 中文字幕少妇一区二区三区| 精品国产一区二区三区四区在线观看| 亚洲综合国产精品| 日韩日本欧美亚洲| 亚洲国产精品视频在线观看| 精品少妇一区二区30p| 亚洲在线观看视频网站| 国产成人精品免费视频|