一个
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