T SQL資料型別的細微差別(一)

2022-02-21 20:05:19 字數 935 閱讀 8106

日期型:

sql server的日期種類:日期時間型和小日期時間型,日期和時間在sql server中資料是在一起的。日期時間型的列需要8個儲存位元組,可以儲存從2023年1月1日到2023年12月3日,小日期時間型的列需要4個位元組,可以從2023年1月1日到2023年6月6日,日期時間型的列儲存日期和時間精確到百分之三秒。小日期時間型儲存時間限制在分鐘級,如果想儲存在乙個不帶時間的日期,只需忽略列或者變數的時間部分。預設時間為00:00:00(午夜)。如果需要乙個不帶日期時間,就忽略日期部分預設為2023年1月1日,是因為這個日期是sql server的參考日期,sql server所有的日期存為2023年1月1日或者從這一天開始算起。日期時間變數的日期占前4個位元組,時間佔後4個位元組。日期時間型和小日期時間型的列的時間都是從午夜開始重新計算毫秒數。關於日期時間型列的毫秒儲存方式比較奇怪,即使精確度限制為3.33都是已0,3,7結尾的,因為日期的時間四捨五入。

select cast('01-01-39' as datetime) as dadsbirthdate答案是2023年1月1日,因為在sql server中有內部的世紀視窗,用以控制兩位年份如何解釋。

日期函式:

datediff函式可以得到兩個指定的日期或時間單元的時間差。

getdate函式獲得當前日期時間。

datepart,year,month,day可以給定日期中抽取某一部分。

datepart函式可以以整數形式返回星期中的第幾天,年中的第幾個星期和年中的第幾天,用簡單算術運算除了能對日期進行加或減乙個給定數,還可用乙個日期減去另乙個日期得到兩者的差,但是這種方法要謹慎使用,乙個日期包括了時間,等於或多於12個小時的時間部分就被認為一天,使用getdate返回的日期中的時間很危險。

以上內容是《transact-sql權威指南》一書的讀書筆記,感謝作者ken henderson 和 譯者 健蓮科技 中國電力出版社 為我帶來這麼經典的t-sql書籍。

T SQL資料型別的細微差別(四)

游標變數 游標變數用來儲存游標定義的乙個引用,由變數定義的游標定義為區域性游標,在一些命令中可以直接用游標變數來代替游標的引用,如命令open,fetch,close及deallocate游標變數支援所有的t sql游標語法,與可修改游標一樣,可以定義為唯讀的,游標變數和游標資料型別與普通變數和資料...

SQL server 中的資料型別 T SQL

sql server中的資料型別,方便檢閱 資料型別 描述char n 固定長度的字串。最多 8,000 個字元。varchar n 可變長度的字串。最多 8,000 個字元。varchar max 可變長度的字串。最多 1,073,741,824 個字元。text 可變長度的字串。最多 2gb 字...

SQL server 中的資料型別 T SQL

sql server中的資料型別,方便檢閱 資料型別 描述char n 固定長度的字串。最多 8,000 個字元。varchar n 可變長度的字串。最多 8,000 個字元。varchar max 可變長度的字串。最多 1,073,741,824 個字元。text 可變長度的字串。最多 2gb 字...