成人欧美一区二区三区的电影,日韩一级一欧美一级国产,国产成人国拍亚洲精品,无码人妻精品一区二区三区毛片,伊人久久无码大香线蕉综合

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

sql server 日期時間數(shù)據(jù)類型

liguoquan
2025年10月14日 11:3 本文熱度 766
:sql server 日期時間數(shù)據(jù)類型


1、日期和時間數(shù)據(jù)類型

(1)在sqlserver 2008之前,SQL Server 支持datetime 和 smalldatetime 兩種日期時間數(shù)據(jù)類型、這兩種數(shù)據(jù)類型日期和時間是不可分割的、差異在日期范圍、精度方面

(2)sql server 2008引入date 和 time 、datetime2、datetimeoffset數(shù)據(jù)類型、其中datetime2比date范圍更大,精度更高、datetimeoffset 有一個時間偏移量組件

(3)datetime 精確到毫秒,time 和 datetime 精確到100納秒

(4)time 、datetime2 、datetimeoffset 的存儲需求取決于精度、以整數(shù) 0~7 表示秒的小數(shù)部分的精度、如TIME(0),表示小數(shù)部分為0位,精確到秒,TIME(3)表示精確到毫秒

 

 

2、日期和時間常量

(1)日期和時間常量,說白了就是日期時間類型的文本值,如orderdate = '20070212'

  (2) Sql server將 文本‘20070212’ 識別為字符串常量、而不是日期和時間常量,但是由于 orderdate = '20070212' 涉及兩種類型的操作數(shù)、所以必須有一個隱式轉(zhuǎn)換,類型轉(zhuǎn)換的方向基于數(shù)據(jù)類型的優(yōu)先級、日期類型優(yōu)先級高于字符串

(3)此外也可以進行顯式轉(zhuǎn)換

cast('20070212' as datetime)

 

(4)日期格式與語言有關(guān)系,如中英文日期格式不同,sql server 將日期字符串轉(zhuǎn)換成日期時,基于會話的有效語言轉(zhuǎn)換

(5)convert(datetime, '02/12/2007' ,101)顯式轉(zhuǎn)換字符串常量,第3個參數(shù)中指定一個代表所使用格式的數(shù)字、網(wǎng)上有編碼與格式的映射表格(The Cast and  Convert Functions)

 

3、日期篩選的優(yōu)化細節(jié)

(1)使用日期函數(shù) year 、month 是無法使用索引的

-- 以下sql 無法使用到索引
select orderid ,custid ,empid ,orderdate
from Sales.Orders
where year(orderdate) = 2007;

 

 

(2)應該使用以下方案替代

select orderid ,custid ,empid, orderdate
from Sales.Orders
where orderdate>= '20070101'
and orderdate < '20080101'

 

 

4、日期與事件函數(shù)

4.1 返回當前日期和時間

(1)getdate()   , 返回datetime類型、當前日期時間

(2)current_timestamp , 等價于getdate() ,返回值是datetime ,不用帶括號,是標準ANSI SQL,推薦使用

  (3) sysdatetime 返回的是datetime2

 

4.2指定格式字符串轉(zhuǎn)換成日期

4.2.1 cast 、convert 、parse 、try_

(1)cast(value as datatype) 、convert(datetyepe,vulue,stylenumber)、parse( value as datatype using culture)

(2)cast convert parse 函數(shù)當源數(shù)據(jù)無法轉(zhuǎn)換成日期會報錯,如果加了try_前綴 函數(shù)返回null ,不會報錯

(3)cast 是ANSI SQL,convert 和parse 不是,所以除非需要使用到樣式編碼或趨于編碼,盡量使用Cast

(4) convert 和其他兩個參數(shù)不一樣、第一個參數(shù)是dateype ,第二步才是value,

(5)convert 既可以將字符串轉(zhuǎn)時間,也可以將時間轉(zhuǎn)成指定字符串

-- 字符串轉(zhuǎn)時間
select convert(datetime, '02/12/2007' ,101)
 
-- 時間轉(zhuǎn)字符串,一下返回當前年月日'20190406'
select convert(char(8),current_timestamp,112)

 

 

4.2.2 dateadd 函數(shù)

(1)該函數(shù)用于為指定日期部分增加一個指定的單位數(shù)量到輸入的日期時間值總

(2)語法 dateadd(part, n, dt_val)

  (3)   part 的有效輸入值有 year、 quarter 、month 、week 、day 、hour 、minute、 second 、second  等,更多的參閱SQL Server 聯(lián)機叢書

-- 加一年
select dateadd(year,1,'20090212')

 

 

 

4.2.3 datediff函數(shù)

(1) datediff 函數(shù)返回兩個日期和時間值之間在指定日期部分的差異

-- 計算一下兩個日期相差多少天,返回366天
select datediff(day'20080212','20090212')

(2)part 和前面一樣

(3)是后面的日期,減去前面的日期

 

4.2.4 datepart函數(shù)

(1) datepart 返回一個表示所請求日期或時間值部分的整數(shù)

--  返回2
datepart(month,'20070212') 

(2) year(dt_val) 、month(dt_val) 、day(dt_val) 實際是datepart 的縮寫

 

4.2.5 isdate函數(shù)

isdate(str)  ,字符串能轉(zhuǎn)換成時間返回1 ,不能返回0

 

4.2.6 fromparts 函數(shù)

(1)在sqlserver 2012 引入,用于接收各個部分的整數(shù)值構(gòu)建對應類型

(2)格式

datefromparts(year,month,day)
datetimefromparts(year,month, day, minute, seconds,millisseconds)

 

 

4.2.7 eomonth 

(1)sqlserver 2012 中引入、用戶接受一個日期和時間值輸入,返回月末午夜日期

-- 返回當月月末日期
select eomonth(current_timestamp)

 

  

(2) 第二個參數(shù)可選,指示在原來的基礎(chǔ)上增加多少個月

--下個月的最后一天
select eomonth(current_timestamp,1)

 


該文章在 2025/10/14 11:03:02 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關(guān)報表等業(yè)務管理,結(jié)合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved