datetime型別簡介(轉)

post0發表於2007-08-11
datetime型別簡介(轉)[@more@]

  一個datetime型的欄位可以儲存的日期範圍是從1753年1月1日第一毫秒到9999年12月31日最後一毫秒。

  如果你不需要覆蓋這麼大範圍的日期和時間,你可以使用SMALLDATETIME型資料。它與datetime型資料同樣使用,只不過它能表示的日期和時間範圍比datetime型資料小,而且不如datetime型資料精確。一個SMALLDATETIME型的欄位能夠儲存從1900年1月1日到 2079年6月6日的日期,它只能精確到秒。

datetime資料型別的操作:

1、日期的擷取:

用extend擷取日期的部分值,如:

start_time='2004-06-15 11:12:13'

本文以下出現的start_time均為datetime year to second

extend(start_time,year to month)='2004-06'

extend(start_time,hour to hour)='11'

要說明的是:以上函式返回的'2004-06'和'11'的型別仍然都是datetime型,無法直接進行加減操作。

2、日期的計算:

應用中經常會用到日期的加減,比如取當前日期的前一天或指定日期的前一天等,

這種操作不好說,還是看看下面的例子說明問題:

select

curretn

current year to day - interval(9) day to day,

current year to second - interval(9) minute to minute

from tab1

將會返回:

2004-06-13 19:30:42.000

2004-06-04

2004-06-13 19:21:42

不知這樣大家明白沒。

型別轉換:

前文提到的extend(start_time,hour to hour)='11'的結果仍然是datetime型,如果要進行型別轉換的話:

1、extend(start_time,hour to hour)||''將返回char型,extend(start_time,hour to

hour)||''+0將返回integer型,extend(start_time,hour to hour)||''+0.0將返回float型,雖然樣子不太好看,不過效果不錯,呵呵。對了,忘記說的是:類似extend(start_time,hour to hour)||''+0這樣的方法可以在select中使用,但在create view的時候使用則會發生語法錯誤(IDS 9.4)。

2、用to_char函式:

to_char(start_time)將按原樣返回start_time欄位的字元形式,如:

SELECT TO_CHAR(start_time, '%A %B %d, %Y %R') FROM tab1

結果是:

Wednesday July 23, 2003 18:45

其中:

%A:周、%B:月(英文)、%m月(數字)、%d:日、%Y:年,%R:時間。

按照以上方法,大家可以將日期時間型按照自己喜歡的形狀進行加工。

(IDS 9.4)

3、to_date函式:

用法類似於to_char,如:

to_date('20040615111213','%Y%m%d%H%M%S')

將返回一個datetime型:

2004-06-15 11:12:13.00000

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944403/,如需轉載,請註明出處,否則將追究法律責任。

相關文章