數據類型

     datetime和interval是兩種與時間有關的數據類型。它們的做用體如今如下幾個方面:建立或者更改記錄庫中的某條記錄、當某個時間發生時運行記錄、或者計算某個datetime變量創建後所經歷過的時間。本文將介紹SQL92標準對上述兩種數據類型的描述。   SQL數據類型      若是你想進一步瞭解SQL數據類型,請閱讀SQL基礎:字符串型數據類型,這篇文章的範圍覆蓋了SQL中的通用數據類型並說明了各類字符串數據類型的用法,SQL基礎:數字數據類型詳細介紹了數字數據類型。   Datetime   用於表示時間或者日期的數據類型都屬於datetime類型。每一種datetime數據類型都有他本身的用於獲取值的長度和它所保存信息的手段,如天、月、分鐘、秒、秒的小數等等。      實際上,datetime的實現形式隨着定義它的標準不一樣而擁有不一樣的長度和格式;然而,各個公司定義的類型都內在地符合下述規則。舉例來講,時標(timestamp)的某個實現可能沒有分隔符,隨着細節的規範不一樣,長度和格式也發生變化,在某些場合以空格作爲間隔符。Datetime數據類型包括:DATA、TIME和TIMESTAMP。讓咱們仔細研究這些分類,首先咱們看看DATA。      DATA   用法:DATA   DATA類型容許沒有參數,如精度。   DATA的字段包括年、月和日。   DATA的長度爲十個字符: YYYY-MM-DD。(Y表示年、M表示月、D表示日。)   它只容許與其它DATA類型字段相比較。   容許的數字必須符合公曆的規範。   TIME   用法:TIME(精度)   該類型包含了小時、分和秒,格式爲hh:mm:ss(h表示小時、m表示分、s表示秒)   精度可選擇,(……)   時間以世界標準時間(Universal Coordinated Time,UTC)爲準,即00:00:00表示.格林威治的午夜,服務器的時區隱含的。   若是不須要秒的小數部分,那麼TIME的長度爲八個字符。不然就是八位長度在加上精度:hh:mm:ss.p。   它只能與其它TIME類型數據進行比較。   若是沒有指定精度,精度默認爲0。      TIME WITH TIME ZONE      用法:TIME (精度) WITH TIME ZONE   這個值要符合TIME數據類型   TIMEZONE部分表示相對UTC的時差:00:00:00+hh:mm。它的範圍爲-12:59到13:00。   精度表示秒的小數部分。   帶有TIMEZONE的TIME長度爲14個字符加上精度,在加上一個分隔符。   只能夠與帶有TIMEZONE的TIME類型數據進行比較   TIMESTAMP   用法:TIMESTAMP(精度)   該類型包含有年、月、日、時、分、秒,格式爲:YYYY-MM-DD hh:mm:ss.。   能夠包括秒的小數部分,這由定義的精度決定。   它的日期部分符合公曆標準,時間部分爲UTC格式。默認爲當地時區。   時標的長度爲19個字符,加上精度,在加上精度分隔符。   許多系統偏離上述定義的長度,如UNIX風格時標格式爲:,YYYY-MM-DD hh:mm:ss.p。   若是沒有定義精度,默認值爲6,可是許多數據庫公司默認爲0,因此請參考你的開發文檔。   時標只能夠與其它TIMESTAMP類型的值相比較。   TIMESTAMP WITH TIME ZONE      用法:TIMESTAMP(精度)WITH TIME ZONE      時標部分符合上述TIMESTAWP的規則。   精度表明秒的小數部分。   時區部分的要求和TIME WITH TIME ZONE同樣,即時區符合UTC規範,範圍在-12:59到 +13:00之間。   總長度爲25個字符,加上精度,加上一個精度分隔符:YYYY-MM-DD hh:mm:ss.p。   它只能與其它TIMESTAMP WITH TIME ZONE類型的數據進行比較。   Interval      Interval用於表示時間尺度。例如,你能夠用操做符(將在下面進行解釋)去計算兩個日期間天數並加以保存。      各個公司在處理interval上有很大的不一樣——有些公司提供不一樣的度量單位,如年或者分鐘,而有些公司在根本就不支持interval。SQL92標準的interval類型只提供一種子類型:INTERVAL。         INTERVAL      用法: INTERVAL (限定語)      有兩種類型的interval:一種爲「年份-月份」,即保存年份和月份(YYYY-MM);一種爲「天-時間」(DD HH:MM:SS),用來保存天數、小時、分鐘和秒。   限定語——在某些數據庫中interval前導精度(lead precision)——根據其值來指示interval採用「年份-月份」仍是「天-時間」方式。   interval可正可負。   當與其它interval類型變量相比較時,結果保持最大精度,若有必要則補零。   INTERVAL所有由整數組成,除了含有小數的秒以外。   「年份-月份」類型的interval變量只能與其它的「年份-月份」的interval變量進行比較。「天-時間」類型也與此相似。   操做符      操做結果類型   當處理日期時間時,時區保持不變——儘管有些數據庫爲了比較而將其中的一個時區轉換爲另外一個。存在一些操做關鍵字,如OVERLAPS和EXTRACT,它們用於操做和比較datetime類型數據。然而,不一樣的數據庫在這些操做關鍵字用法和支持方式上有着很大的不一樣。      OVERLAPS用於計算時間交疊的跨度,其操做對象能夠是兩個datetime也能夠是一個datetime和一個interval。EXTRACT用於提取datetime或者interval類型數據的某個部分,如在DATA類型數據中提取月份。      數據類型   因爲已創建的標準是爲了各公司在現有基礎上實現實際上的數據類型的,所以在具體限制、參數和數據類型等方面,你仍是須要常常參考你的數據庫文檔。
相關文章
相關標籤/搜索