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

首頁 > 開發 > 綜合 > 正文

TSQL基礎(四)

2024-07-21 02:48:14
字體:
來源:轉載
供稿:網友
TSQL基礎(四) - 日期處理日期類型-DateTimeDateTime是sql中最常用的日期類型。

存儲大小為:8個字節;

日期范圍:1753-01-01到9999-12-31;

精確度:3.33毫秒;

常用的日期函數GetDate()獲取系統當前日期
select GETDATE()
DatePart(part,dtValue) 獲取日期中的一部分,part為要獲取的部分,dtValue為日期

part 參數有:

日期部分 縮寫year yy, yyyyquarter QQ, qmonth mm, mdayofyear dy, yday dd, dweek wk, wwweekday dwHour hhminute mi, nsecond ss, smillisecond ms

         select GETDATE() as '系統當前日期' ,                DATEPART(YEAR, GETDATE()) as '年',                DATEPART(month,GETDATE()) as '月',                DATEPART(DAY,GETDATE()) as '天',                DATEPART(HOUR,GETDATE()) as '小時',                DATEPART(minute,GETDATE()) as '分',                DATEPART(second,GETDATE()) as '秒',                DATEPART(Millisecond,GETDATE()) as '毫秒',                DATEPART(quarter,getdate()) as '季度',                 DATEPART(dayofyear,getdate()) as '從年初到現在的天數',                DATEPART(weekday,getdate()) as '今天是這個星期的第幾天,從星期天開始',                DATEPART(week,getdate()) as '今年的第幾周'                  --part簡寫          select GETDATE() as '系統當前日期' ,                DATEPART(YYYY, GETDATE()) as '年',                DATEPART(MM,GETDATE()) as '月',                DATEPART(DD,GETDATE()) as '天',                DATEPART(HH,GETDATE()) as '小時',                DATEPART(MI,GETDATE()) as '分',                DATEPART(SS,GETDATE()) as '秒',                DATEPART(MS,GETDATE()) as '毫秒',                DATEPART(qq,getdate()) as '季度' ,                DATEPART(dy,getdate()) as '從年初到現在的天數',                DATEPART(dw,getdate()) as '今天是這個星期的第幾天,從星期天開始',                DATEPART(wk,getdate()) as '今年的第幾周'
datename返回代表指定日期的指定日期部分的字符串
  SELECT datename(weekday, '2014-12-8')     SELECT datename(YY, '2014-12-8')   

year(dtValue),Month(dtValue),Day(dtValue)分別獲取日期中:年,月,日的部分
 select year('2014-01-12'),        Month('2014-01-12'),        DAY('2014-01-12')                               
DateAdd(part,num,dtValue)對給定的某一日期加減,num為正數則為加,為負數則為減
select    '19901221' as  '給定的日期',        dateadd(year,2,'19901221') as '加2年' ,         dateadd(year,-2,'19901221') as '減2年',        dateadd(month,12,'19901221') as '加12個月',        dateadd(month,-12,'19901221') as '減12個月',         dateadd(day,31,'19901221') as '加31天',        dateadd(day,-31,'19901221') as '減31天' 

DateDiff(part,dtValue1.dtValue2)計算2個日期間的間隔
select  datediff(year,'1988-12-21','1990-12-21'),--大的時間在后面 間隔為正數                datediff(year,'1990-12-21','1988-12-21')--大的時間在前面面 間隔為負數    

日期格式convert(dataType,value[,style])函數可以將表達式由一種數據類型轉換為另一種數據類型,而且可以把日期轉換為新數據類型的通用函數
Style IDStyle 格式
100 或者 0mon dd yyyy hh:miAM (或者 PM)
101mm/dd/yy
102yy.mm.dd
103dd/mm/yy
104dd.mm.yy
105dd-mm-yy
106dd mon yy
107Mon dd, yy
108hh:mm:ss
109 或者 9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110mm-dd-yy
111yy/mm/dd
112yymmdd
113 或者 13dd mon yyyy hh:mm:ss:mmm(24h)
114hh:mi:ss:mmm(24h)
120 或者 20yyyy-mm-dd hh:mi:ss(24h)
121 或者 21yyyy-mm-dd hh:mi:ss.mmm(24h)
126yyyy-mm-ddThh:mm:ss.mmm(沒有空格)
130dd mon yyyy hh:mi:ss:mmmAM
131dd/mm/yy hh:mi:ss:mmmAM
  select GETDATE(),                    CONVERT(nvarchar(20),GETDATE(),120) as 'style=120',                    CONVERT(nvarchar(20),GETDATE(),101) as 'style=101',                    CONVERT(nvarchar(20),GETDATE(),112) as 'style=112'

順便學習一下cast(exPRession as dataType[(length)])函數

cast()和convert()函數很相似,可以將表達式由一種數據類型轉換為另一種數據類型,但無法像convert()函數一樣設置時間格式

cast()是ANSI標準SQL,除非需要設置格式,否則優先選擇cast()轉換。

select  CAST('100' as  decimal(18, 2)) +11, --字符串轉換為decimal                 convert(decimal(18, 2),'100')+11,--字符串轉換為decimal                 '100'+11 --sql內部自動轉換為int 

日期函數應用求本年第一天的日期
select DATEADD(YY,2,'2011')

dateadd年份相加時,月份天數時間都會為初始值??梢杂眠@個特性來求出第一天日期。

1.選擇一個日期為"中間值",算出今年和這個"中間值"相差多少年。

2.然后用"中間值"加上第一步中的求出相差的年份。

select DATEDIFF(yy,'2011',getdate()) --1.求出中間值2011和今年相差的年份為多少select DATEADD(yy,   DATEDIFF(yy,'2011',getdate()),   '2011')--2.然后用"中間值"加上第一步中的求出相差的年份。

"中間值"一般寫0,寫0時這個日期則為默認值'1900-01-01'

select DATEDIFF(yy,0,getdate())select DATEADD(yy,   DATEDIFF(yy,0,getdate()),  0)select DATEDIFF(yy,'1900-01-01',getdate())select DATEADD(yy,   DATEDIFF(yy,'1900-01-01',getdate()),   '1900-01-01')

那么就上一年或者明年第一天就只需要在相差的年份后面加減即可

select DATEADD(yy,   DATEDIFF(yy,0,getdate())-1,  0)--上一年開始一天select DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,  0)--下一年開始一天select DATEADD(yy,   DATEDIFF(yy,0,'2008'),  0)--2008年開始一天

那么求本年第N天的日期只需要加(N-1)天數即可

select DATEADD(yy,   DATEDIFF(yy,0,getdate()),  0)+(101-1)--本年第101天的日期

那么求本月第一天的日期和第N天的日期,求本星期第一天和第N天的日期只需求改part部分即可

   --本月的第一天  select DATEADD(mm,   DATEDIFF(mm,0,getdate()),0)     --本月的第13天  select DATEADD(mm,   DATEDIFF(mm,0,getdate()),0)+(13-1)   --本星期的第一天  select DATEADD(WK,   DATEDIFF(WK,0,getdate()),0)     --本星期的第三天  select DATEADD(WK,   DATEDIFF(WK,0,getdate()),0)+(3-1)

求本年最后一天的日期

先求出下一年第一天的日期然后減去3毫秒即可

    select DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,   0)--下一年第一天    SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,   0))  --得到下一年的開始一天 然后在減去3毫秒

為什么是減3毫秒?別的可以嗎?

因為datetime類型的時間精度是3.33毫秒,如果超過該精度會進行近似到0.000,0.003,0.007 秒

    select DATEADD(ms,-1, '2015-01-01 00:00:00.000') as '減1毫秒',           DATEADD(ms,-2, '2015-01-01 00:00:00.000') as '減2毫秒',           DATEADD(ms,-3, '2015-01-01 00:00:00.000') as '減3毫秒',           DATEADD(ms,-4, '2015-01-01 00:00:00.000') as '減4毫秒',           DATEADD(ms,-5, '2015-01-01 00:00:00.000') as '減5毫秒'                  select DATEADD(ms,-6, '2015-01-01 00:00:00.000') as '減6毫秒',           DATEADD(ms,-7, '2015-01-01 00:00:00.000') as '減7毫秒',           DATEADD(ms,-8, '2015-01-01 00:00:00.000') as '減8毫秒',                          DATEADD(ms,-9, '2015-01-01 00:00:00.000') as '減9毫秒',           DATEADD(ms,-10, '2015-01-01 00:00:00.000') as '減10毫秒'    select                  DATEADD(ms,-11, '2015-01-01 00:00:00.000') as '減11毫秒',           DATEADD(ms,-12, '2015-01-01 00:00:00.000') as '減12毫秒',           DATEADD(ms,-13, '2015-01-01 00:00:00.000') as '減13毫秒',           DATEADD(ms,-14, '2015-01-01 00:00:00.000') as '減14毫秒',           DATEADD(ms,-15, '2015-01-01 00:00:00.000') as '減15毫秒'

那么就上一年或者明年第一天就只需要在相差的年份后面加減即可

SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0))  --上一年最后一天SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate())+2,   0))--下一年最后一天SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,'2008')+1,   0))--2008年最后一天

那么求本月最后一天的日期,求本星期最后一天日期只需求改part部分即可

  SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(mm,0,getdate())+1,  0))    --本月的最后一天       SE
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
激情懂色av一区av二区av| 国产日韩精品在线观看| 国产精品免费久久久久影院| 中文字幕日韩精品在线| 国产精品久久久| 欧洲亚洲妇女av| 国产精品爱久久久久久久| 久久久免费精品| 欧美丰满少妇xxxx| 91精品综合视频| 久久成人人人人精品欧| 欧美日韩国产丝袜美女| 国产日本欧美视频| 欧美韩国理论所午夜片917电影| 亚洲福利影片在线| 久久理论片午夜琪琪电影网| 亚洲色图50p| 国产精品一香蕉国产线看观看| 久久久久久久一| 欧美高清在线播放| 97视频在线观看免费| 国产精品福利在线观看网址| 91国偷自产一区二区三区的观看方式| 亚洲香蕉成人av网站在线观看| 国产精品揄拍一区二区| 亚洲第一精品自拍| 日韩精品久久久久久福利| 国产日韩视频在线观看| 国产午夜精品理论片a级探花| 91中文精品字幕在线视频| 欧美裸身视频免费观看| 中文字幕精品久久| 国内精品中文字幕| 亚洲欧美三级伦理| 亚洲第一精品久久忘忧草社区| 日韩专区在线观看| 欧美日韩在线视频首页| 国产亚洲精品久久久久动| 久久久国产一区二区| 亚洲欧美制服综合另类| 日韩一区二区福利| 国产精品v片在线观看不卡| 国产成人一区二区三区| 国产亚洲欧美一区| 国产成人精品在线播放| 欧美在线视频免费观看| 美女视频久久黄| 6080yy精品一区二区三区| 97视频在线观看免费高清完整版在线观看| 国产精品69av| 欧美日韩aaaa| 欧美高清激情视频| 中文欧美日本在线资源| 日韩激情第一页| 91成人福利在线| 亚洲影院污污.| 欧美午夜激情视频| 国产91精品久久久久久| 国产日产久久高清欧美一区| 国产精品99导航| 久久影视电视剧免费网站清宫辞电视| 秋霞午夜一区二区| 欧美高清一级大片| 91欧美日韩一区| 久久网福利资源网站| 久久国产精品久久精品| 中文字幕欧美精品在线| 中文国产成人精品久久一| 日本伊人精品一区二区三区介绍| 久久久久久久久久国产| 日韩高清欧美高清| 欧美孕妇孕交黑巨大网站| 亚洲高清在线观看| 日韩中文字幕网址| 91色在线视频| 91精品国产自产在线老师啪| 国产精品日韩电影| 国产精品成av人在线视午夜片| 日韩中文字幕不卡视频| 国产精品自产拍在线观| 456国产精品| 亚洲老头老太hd| 亚洲国产美女精品久久久久∴| 亚洲人成伊人成综合网久久久| 日韩性xxxx爱| 久久电影一区二区| 成人自拍性视频| 精品亚洲一区二区三区四区五区| 欧美性xxxxx极品| 91在线精品播放| 亚洲国产日韩一区| 亚洲美女在线视频| 欧美精品久久久久久久久久| 91免费在线视频网站| 欧美性猛交xxxx黑人| 色www亚洲国产张柏芝| 亚洲国产欧美日韩精品| 国产精品成人观看视频国产奇米| 欧美精品www在线观看| 欧美日韩电影在线观看| 欧美精品免费在线| 欧美性猛交xxxx久久久| 青青久久av北条麻妃海外网| 丝袜一区二区三区| 亚洲自拍偷拍视频| 国产精品麻豆va在线播放| 久久中文久久字幕| 国产欧美一区二区三区四区| 国产亚洲人成a一在线v站| 色多多国产成人永久免费网站| 亚洲一区二区三区乱码aⅴ蜜桃女| 精品偷拍一区二区三区在线看| 欧美激情亚洲激情| 国产日韩欧美一二三区| 久久久午夜视频| 高潮白浆女日韩av免费看| 毛片精品免费在线观看| 不卡中文字幕av| 国产精品极品美女粉嫩高清在线| 久久久免费观看| 秋霞午夜一区二区| 久久精品中文字幕| 日韩av网址在线| 午夜精品一区二区三区在线视| 国产精品美女av| 国产精品揄拍一区二区| 日韩中文字幕在线精品| 亚洲精品福利资源站| 欧美成人午夜视频| 91精品啪aⅴ在线观看国产| 国产亚洲视频在线观看| 精品国产一区av| 美女性感视频久久久| 久久国产精品影视| 成人免费淫片aa视频免费| 一区二区三区视频免费| 久久久久久美女| 国产日韩欧美影视| 8x拔播拔播x8国产精品| 国产97人人超碰caoprom| 色yeye香蕉凹凸一区二区av| 欧美亚洲另类视频| 亚洲精品日韩在线| 久久久久久亚洲精品中文字幕| 北条麻妃一区二区三区中文字幕| 久久久成人精品| 亚洲美女av电影| 国产成人在线一区二区| 欧美整片在线观看| 国产精品一二三视频| 日本精品久久久| 奇米一区二区三区四区久久| 欧美乱妇40p| 国产美女直播视频一区| 97色在线视频观看| 中文字幕在线观看日韩| 欧美一区亚洲一区| 成人精品一区二区三区电影黑人| 国产精品午夜一区二区欲梦| 国产精品一二区| 久久久亚洲影院你懂的| 久久精品久久久久电影| 亚洲欧美一区二区三区情侣bbw| 国产精品久久一|