校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > SQLServer日期函數總結案例詳解

SQLServer日期函數總結案例詳解

熱門標簽:實體店地圖標注怎么標 外呼系統會封嗎 萬利達綜合醫院地圖標注點 地圖標注如何弄全套標 南京電銷外呼系統哪家好 股票配資電銷機器人 電銷機器人 深圳 在電子版地圖標注要收費嗎 武漢AI電銷機器人

SQL Server發展至今,關于日期的格式的控制方法,有傳統的方法,比如CONVERT(),也有比較便利的新方法,比如FORMAT();同樣,關于日期的操作函數,也分為傳統方法:DATEADD()等,也有便利的新方法:EOMonth()等。

一,日期的格式化

格式化是指把日期類型(Date)、日期和時間類型轉化為字符類型,通常使用CONVERT()和FORMAT()函數。

1,傳統的CONVERT()

SQL Server控制日期的的顯示格式,通常使用CONVERT()函數,通過控制style參數來控制日期顯示的格式,但是,style很多,不利于記憶。

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

符合東方人閱讀習慣的style及其顯示格式如下:

  • 101: mm/dd/yyyy
  • 110: mm-dd-yyyy
  • 111: yyyy/mm/dd
  • 112: yyyymmdd
  • 120: yyyy-mm-dd hh:mm:ss
  • 121: yyyy-mm-dd hh:mm:sssssss

CONVERT()函數的style是數字,記憶起來比較困難,并且只能按照系統定義的格式來顯示,不夠靈活。SQL Server提供更為靈活的轉換函數FORMAT()。

2,便利的FORMAT()函數

FORMAT()函數,可以方便和靈活地控制數值、日期和時間類型的顯示格式,通常情況下,FORMAT()函數主要用于格式化顯示date/time類型和數值類型,參數format用于指定顯示的格式,給予用戶對格式更自由地控制,culture參數是可選的,用于指定顯示的語言,該函數返回值的數據類型是NVARCHAR,如果格式轉換失敗,該函數返回NULL:

FORMAT ( value, format [, culture ] )

參數format使用#表示一個數值,參數 format 使用以下占位符來表示日期/時間的格式:

  • yyyy、MM、dd:表示年、月、日
  • hh:mm:ss fffffff:表示時、分、秒、毫秒
  • 使用“/”,“-”等作為連接各個部分(part)的分割符號

(1)把date/time格式化

在format參數中指定日期/時間顯示的格式,以特定的格式: “yyyy:MMdd hh:mm:ss fffffff” 顯式日期/時間,例如:

select format(SYSDATETIME(),'yyyy-MM-dd hh:mm:ss fffffff')

(2)轉換數值類型

在參數format中使用#代表一個數字,使用相應的連接符,拼接成數字的格式字符,例如:

FORMAT(123456789,'###-##-####') AS 'Custom Number Result

二,日期和時間的結構

常用的日期的構成(datepart)是:year、month、day、hour、minute、second、ns、TZoffset(簡寫為 tz)

DATEPART ( datepart , date ) 
YEAR ( date )  
MONTH ( date )  
DAY ( date ) 

在實際的產品環境中,周、季度等都很有用途:

  • quarter:季度,取值范圍是 1、2、3、4
  • week:周在年中的序數,取值范圍是 1 - 53
  • dayofyear:天在年中的序數,取值范圍是 1 - 366
  • weekday:天在一周中的序數,取值范圍是 1 - 7

DATEPART()返回的datepart是int類型,如果想要返回字符類型,可以使用DATENAME()函數:

DATENAME ( datepart , date )

通過datepart來構造日期,常用的函數有:

DATEFROMPARTS ( year, month, day )
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision ) 
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )

參數precision 是指小數秒的精度,指的是DateTime2(n)、DateTimeOffset(n),Time(n)中的n值,表示以多少位小數表示1s。

三,日期操作

日期函數:EOMonth、Format、DateAdd、DateDiff、SwitchOffset

1,月份的最后一天

函數 EOMonth() 返回指定日期的最后一天

EOMONTH ( start_date [, month_to_add ] )

參數注釋:

  • start_date: 有兩種輸入方式,能夠轉換為Date的字符串類型 和 date 數據類型
  • month_to_add: 是int 類型,能夠為正整數,負整數和0,默認值是0,如果省略,那么使用默認值0。

例如,查看當前月的最后一天、下一個月的最后一天、上一個月的最后一天:

declare @date date
set @date=getdate()

select EOMONTH(@date) as CurrentMonth_EndDay,
    EOMONTH(@date,1) as NextMonth_EndDay,
    EOMONTH(@date,-1) as LastMonth_EndDay

2,月份的第一天

使用DateFromParts() 函數,能夠從3個正整數(year,month,day)中獲取date 類型,只需要將day 參數設置1,就能獲取月份的第一天的日期。

declare @date date
set @date=getdate()

select DATEFROMPARTS(year(@date),month(@date),1)

也可以使用Format() 函數, 以字符串形式返回月份的第一天,例如,獲取當前月份的第一天:

FORMAT(GETDATE(),'yyyyMM01')

3,切換時區

把DateTimeOffset類型的數據切換到指定的時區,在轉換過程中,UTC時間是固定的,依據固定的UTC時間,切換到特定時區的本地時間:

SWITCHOFFSET ( DATETIMEOFFSET, time_zone )

參數注釋:

  • DATETIMEOFFSET:DateTimeOffset(n)類型的變量
  • time_zone:指定的目標時區數據,格式是  [+|-] hh:mm

使用SwitchOffset()函數把DateTimeOffset的時區偏移(Offset)切換到指定的時區中,例如,把本地時間的時區東八區切換到東七區:

DECLARE @remote DATETIMEOFFSET 
DECLARE @local DATETIMEOFFSET
SET @local = SYSDATETIMEOFFSET()
SET @remote = SWITCHOFFSET (@local, '+07:00')
SELECT @remote AS remote_time,@local AS local_time

可以看到,東7區的時間比東8區的時間晚一個小時。

4,當前日期是周幾

在SQL Server中,通過DataFirst選項設置一周的第一天,序數是從1到7,表示一周的7天。

SET DATEFIRST { number | @number_var }

(1)可以通過@@datefirst來獲取設置的值

set DATEFIRST 1
select @@datefirst

(2)使用函數datepart函數獲取當天是周幾

set DATEFIRST 1
select datepart(WEEKDAY,getutcdate())

set DATEFIRST 2
--select @@datefirst
select datepart(WEEKDAY,getutcdate())

由于設置不同的DateFirst,會導致datepart返回不同的數值,所以必須借助@@DateFirst

set DATEFIRST 2
select Datepart(weekday, getdate()+@@datefirst - 1)

set DATEFIRST 1
select Datepart(weekday, getdate()+@@datefirst - 1)

4,使用DateName獲取WeekDay的名字

WeekDay的名字跟系統的語言設置有管,跟DateFirst的設置沒有關系

(1) 查看當前的語言設置

select @@language

(2) 查看系統支持的語言

select alias,name, * 
from sys.syslanguages

(3) 設置語言

set LANGUAGE 'Simplified Chinese'
set LANGUAGE 'us_english'

(4) 使用DateName獲取WeekDay的名字

set LANGUAGE 'Simplified Chinese'
select  DATENAME(WEEKDAY,getutcdate())

set LANGUAGE 'us_english'
select  DATENAME(WEEKDAY,getutcdate())

四. 日期函數

sqlserver_時間格式化_年月日

函數名稱 參數 示例 說明

dateadd(日期部分,數字,日期)

select dateadd(year,45,'1990-12-11') 返回 2035-12-11 00:00:00.000
select dateadd(month,45,'1990-12-11') 返回 1994-09-11 00:00:00.000
select dateadd(mm,45,'1990-12-11') 返回 1994-09-11 00:00:00.000
select dateadd(qq,12,'1990-12-11') 返回 1993-12-11 00:00:00.000
select dateadd(hh,12,'1990-12-11') 返回 1990-12-11 12:00:00.000
select dateadd(yy,-12,'1990-12-11') 返回 1978-12-11 00:00:00.000

返回給指定日期加上一個時間間隔后的新的日期值。
數字:用于與指定的日期部分相加的值。如果指定了非整數值,則將舍棄該值的小數部分,舍棄時不遵循四舍五入。
日期:指定的原日期
在此函數中 :dw,dy,dd 效果一樣都表示天

datediff(日期部分,開始日期,結束日期)

select datediff(yy,'1990-12-11','2008-9-10') 返回 18
selectdatediff(mm,'2007-12-11','2008-9-10') 返回 9

返回兩個指定日期的指定日期部分的差的整數值。
在此函數中dw,dy,dd 效果一樣都表示天

datename(日期部分,日期)

select datename(mm,'2007-12-11') 返回 12
select datename(dw,'2007-12-11') 返回星期二
select datename(dd, ‘2007-12-11') 返回 11
select datename(wk, ‘2007-12-11') – 50 一年中的第幾個星期
select datename(dy, ‘2007-12-11') – 345 一年中的第幾天
select DATENAME(YYYY,GETDATE()) + DATENAME(MM,GETDATE()) – 201803

返回表示指定日期的指定日期部分的字符串。

dw 表示一星期中星期幾
wk 表示一年中的第幾個星期
dy 表示一年中的第幾天

datepart(日期部分,日期)

select datepart(mm,'2007-12-11')返回 12
select datepart(dw,'2007-12-11')返回 3
select datepart(dd, ‘2007-12-11')返回 11
select DATEPART(YYYY,GETDATE()) + DATENAME(MM,GETDATE()) – 2021

返回表示指定日期的指定日期部分的整數。

wk 表示一年中的第幾個星期
dy 表示一年中的第幾天,
dw 表示一星期中星期幾,返回整數默認 1 為星期天

getdate()無參數

select getdate() 返回 2222-02-22 12:34:19.070

返回當前系統日期和時間。

getutcdate()無參數

select getutcdate() 返回2222-02-22 04:34:19.073

返回表示當前的UTC(世界標準時間)時間。即格林尼治時間(GMT)

1、上月的第一天

SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)

2、上月的最后一天

SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59'

3、本月的第一天

SELECT CONVERT(CHAR(10),DATEADD(dd,-DAY(GETDATE())+1,GETDATE()),111)

4、本月的最后一天

SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0)),111)+' 23:59:59'

5、來月的最后第一天

SELECT CONVERT(CHAR(10),DATEADD(m,1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)

6、來月的最后一天

SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+' 23:59:59'

日期部分  含義 :

縮寫year年yy,yyyy
quarter季qq,q
month月mm, m
dayofyear天(請看函數中的說明)dy, y
day天(請看函數中的說明)dd, d
week星期wk, ww
weekday天(請看函數中的說明)dw, w
hour小時hh
minute分鐘mi, n
second秒ss, s
millisecond毫秒ms

==================================================

Sql Server 查詢指定范圍(一周,一月,本周,本月等)內的數據

1.查詢今日的所有數據

select * from 表名 where datediff(day,字段名,getdate())=0

2.查詢昨日的所有數據

select * from 表名 where datediff(day,字段名,getdate()-1)=0

3.查詢當天日期在一周前的數據

selcet * from 表名 where datediff(week,字段名,getdate()-1)=0

4.查詢前30天的數據

select * from 表名 where datediff(d,字段名,getdate())=30

5.查詢上一個月的數據

select * from 表名 where datediff(m,字段名,getdate())=1

6.查詢當天的數據

select * from 表名 where datediff(dd,字段名,getdate())=0

7.查詢24小時內的數據

select * from 表名 where datediff(hh,字段名,getdate())

8.查詢本周的數據

select * from 表名 where datediff(week,字段名,getdate())=0

9.查詢本月的數據

select * from 表名 where datediff(month,字段名,getdate())=0

10.查詢本季的數據

select * from 表名 where datediff(qq,字段名,getdate())=0

到此這篇關于SQLServer日期函數總結案例詳解的文章就介紹到這了,更多相關SQLServer日期函數總結內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • SQLServer 日期函數大全(小結)
  • SQLserver中用convert函數轉換日期格式的方法
  • SqlServer中的日期與時間函數
  • Sqlserver 常用日期時間函數

標簽:臺州 濟寧 武威 安徽 廣東 泰安 汕頭 濟源

巨人網絡通訊聲明:本文標題《SQLServer日期函數總結案例詳解》,本文關鍵詞  SQLServer,日期,函數,總結,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLServer日期函數總結案例詳解》相關的同類信息!
  • 本頁收集關于SQLServer日期函數總結案例詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美国产一区二区| 欧美国产日韩a欧美在线观看| www.欧美色图| 国产一区二区h| 国产一区二区三区精品欧美日韩一区二区三区| 调教+趴+乳夹+国产+精品| 婷婷综合久久一区二区三区| 首页亚洲欧美制服丝腿| 日本不卡一区二区三区高清视频| 亚洲国产一区二区三区青草影视| 亚洲国产精品一区二区久久 | 奇米在线7777在线精品| 久久精品99国产国产精| 国产高清亚洲一区| 91性感美女视频| 欧洲精品中文字幕| 日韩精品一区二区三区老鸭窝| 欧美不卡一区二区| 国产精品久久久久aaaa| 亚洲综合丝袜美腿| 久久精品国产99| 成人免费高清在线| 欧美日韩精品一二三区| 日韩午夜三级在线| 中文欧美字幕免费| 亚洲va欧美va国产va天堂影院| 蜜臀av性久久久久蜜臀av麻豆| 国产丶欧美丶日本不卡视频| 在线一区二区三区四区五区| 欧美一区二区三区在线观看| 国产亚洲一本大道中文在线| 亚洲欧美乱综合| 免费av成人在线| 91丝袜美女网| 久久综合久久综合久久综合| 一区二区三区在线影院| 久久丁香综合五月国产三级网站| 成人一道本在线| 日韩一区和二区| 亚洲欧美日韩在线不卡| 国产一区二区在线影院| 欧美无砖专区一中文字| 中文字幕va一区二区三区| 丝袜亚洲另类丝袜在线| 91丨国产丨九色丨pron| 久久色中文字幕| 日韩专区欧美专区| 日本道精品一区二区三区| 久久久久国产精品人| 日韩精品福利网| 欧洲精品一区二区| 亚洲欧洲日产国码二区| 国产一区二区调教| 欧美一级一级性生活免费录像| 一个色妞综合视频在线观看| 国产高清在线精品| 久久久久久一二三区| 老汉av免费一区二区三区| 色欧美日韩亚洲| 中文字幕一区三区| 成人性视频免费网站| 久久久蜜臀国产一区二区| 麻豆精品视频在线观看视频| 8x8x8国产精品| 日韩国产在线观看| 在线观看一区二区精品视频| 亚洲欧洲av一区二区三区久久| 久久成人18免费观看| 制服丝袜一区二区三区| 亚洲国产aⅴ成人精品无吗| 91在线免费播放| 亚洲图片激情小说| 91美女在线观看| 亚洲男人的天堂av| 欧美性猛交xxxx乱大交退制版| 亚洲精选在线视频| 在线一区二区观看| 日本麻豆一区二区三区视频| 欧美三级乱人伦电影| 午夜欧美在线一二页| 欧美日韩国产综合一区二区 | 日本亚洲一区二区| 欧美日韩一区在线观看| 婷婷丁香激情综合| 精品少妇一区二区三区 | 中文字幕一区二区三区在线播放| 国产一区二区在线电影| 国产欧美视频一区二区三区| 国产麻豆精品在线| 日本一区二区三区四区在线视频 | 国产自产视频一区二区三区| www成人在线观看| a美女胸又www黄视频久久| 中文字幕一区二区在线播放| 在线视频国内一区二区| 日韩高清中文字幕一区| 日韩精品自拍偷拍| 成人黄色一级视频| 亚洲第一av色| 久久综合九色综合97婷婷女人| 成人午夜av电影| 一区二区三区欧美在线观看| 日韩欧美一区二区免费| 国产99久久久久| 亚洲中国最大av网站| 精品久久久久久最新网址| 99国产精品久| 麻豆久久一区二区| 亚洲免费在线看| 欧美成人在线直播| 色嗨嗨av一区二区三区| 蜜桃视频免费观看一区| 综合电影一区二区三区 | 国产片一区二区| 欧美三片在线视频观看| 国产老肥熟一区二区三区| 亚洲日本在线a| 久久影音资源网| 欧美肥妇bbw| 91蜜桃免费观看视频| 国产精品2024| 亚洲福利电影网| 国产精品伦理一区二区| 日韩欧美亚洲国产另类| 99re成人在线| 国产很黄免费观看久久| 日本系列欧美系列| 亚洲人成在线播放网站岛国| 26uuu亚洲| 91.com在线观看| 在线一区二区观看| 91美女蜜桃在线| 成人免费高清视频在线观看| 久久精品噜噜噜成人av农村| 亚洲一区二区三区四区不卡| 中文字幕的久久| 国产午夜精品久久久久久久| 日韩精品在线看片z| 欧美色精品在线视频| 一本大道久久a久久综合婷婷| 高清成人在线观看| 韩国女主播成人在线观看| 日本欧美在线看| 爽好多水快深点欧美视频| 玖玖九九国产精品| 日韩1区2区日韩1区2区| 日韩电影在线一区二区| 亚洲第一久久影院| 无吗不卡中文字幕| 亚洲一二三区不卡| 亚洲成人免费av| 午夜精品国产更新| 日本午夜精品视频在线观看| 丝袜国产日韩另类美女| 美女视频黄 久久| 另类综合日韩欧美亚洲| 蜜臀精品久久久久久蜜臀| 久久99在线观看| 国产美女视频91| 国产麻豆日韩欧美久久| 成人av免费在线观看| 色综合天天综合狠狠| 91成人国产精品| 欧美一二三四区在线| 精品国产1区二区| 国产视频一区在线播放| 亚洲视频你懂的| 天天亚洲美女在线视频| 麻豆精品视频在线观看视频| 国产精品一二三四五| 99免费精品视频| 欧美色图第一页| 精品少妇一区二区| 中文字幕在线不卡视频| 伊人开心综合网| 免费欧美高清视频| 国产精品2024| 在线观看av不卡| 亚洲精品一区二区三区在线观看| 久久看人人爽人人| 一区二区三区鲁丝不卡| 久久99精品久久久| 91在线porny国产在线看| 欧美午夜精品一区| 久久久国产午夜精品| 洋洋成人永久网站入口| 狠狠久久亚洲欧美| 日本福利一区二区| 久久亚洲综合av| 伊人色综合久久天天人手人婷| 久久精品久久精品| 91免费视频观看| 久久久精品日韩欧美| 亚洲电影一级黄| 成人综合婷婷国产精品久久免费| 欧美日韩亚洲高清一区二区| 日本一区二区免费在线| 日韩国产欧美三级| 一本色道久久综合狠狠躁的推荐 | 精品无码三级在线观看视频|