="t18">datetime和
![](/icons/59134int.gif)
erval是两种和时间有关
![](/icons/59134de.gif)
数据类型
![](/icons/59134dou2.gif)
它们
![](/icons/59134de.gif)
作用体现在以下几个方面:创建或者更改记录库中
![](/icons/59134de.gif)
某条记录、当某个时间发生时运行记录、或者计算某个datetime变量建立后所经历过
![](/icons/59134de.gif)
时间
![](/icons/59134dou2.gif)
本文将介绍SQL92标准对上述两种数据类型
![](/icons/59134de.gif)
描述
SQL数据类型
如果你想进
![](/icons/59134yi.gif)
步了解SQL数据类型
![](/icons/59134dou.gif)
请阅读SQL基础:
![](/icons/59134zifu.gif)
串型数据类型
![](/icons/59134dou.gif)
这篇文章
![](/icons/59134de.gif)
范围覆盖了SQL中
![](/icons/59134de.gif)
通用数据类型并介绍说明了各种
![](/icons/59134zifu.gif)
串数据类型
![](/icons/59134de.gif)
使用方法
![](/icons/59134dou.gif)
SQL基础:数字数据类型详细介绍了数字数据类型
Datetime
用于表示时间或者日期
![](/icons/59134de.gif)
数据类型都属于datetime类型
![](/icons/59134dou2.gif)
每
![](/icons/59134yi.gif)
种datetime数据类型都有他自己
![](/icons/59134de.gif)
用于获取值
![](/icons/59134de.gif)
长度和它所保存信息
![](/icons/59134de.gif)
手段
![](/icons/59134dou.gif)
如天、月、分钟、秒、秒
![](/icons/59134de.gif)
小数等等
实际上
![](/icons/59134dou.gif)
datetime
![](/icons/59134de.gif)
实现形式随着定义它
![](/icons/59134de.gif)
标准区别而拥有区别
![](/icons/59134de.gif)
长度和格式;然而
![](/icons/59134dou.gif)
各个公司定义
![](/icons/59134de.gif)
类型都内在地符合下述规则
![](/icons/59134dou2.gif)
举例来说
![](/icons/59134dou.gif)
时标(timestamp)
![](/icons/59134de.gif)
某个实现可能没有分隔符
![](/icons/59134dou.gif)
随着细节
![](/icons/59134de.gif)
规范标准区别
![](/icons/59134dou.gif)
长度和格式也发生变化
![](/icons/59134dou.gif)
在某些场合以空格做为间隔符
![](/icons/59134dou2.gif)
Datetime数据类型包括:DATA、TIME和TIMESTAMP
![](/icons/59134dou2.gif)
让我们仔细研究这些分类
![](/icons/59134dou.gif)
首先我们看看DATA
DATA
使用方法:DATA
DATA类型允许没有参数
![](/icons/59134dou.gif)
如精度
![](/icons/59134dou2.gif)
DATA
![](/icons/59134de.gif)
字段包括年、月和日
![](/icons/59134dou2.gif)
DATA
![](/icons/59134de.gif)
长度为十个
![](/icons/59134zifu.gif)
:YYYY-MM-DD
![](/icons/59134dou2.gif)
(Y表示年、M表示月、D表示日
![](/icons/59134dou2.gif)
)
它只允许和其它DATA类型字段相比较
![](/icons/59134dou2.gif)
允许
![](/icons/59134de.gif)
数字必须符合公历
![](/icons/59134de.gif)
规范标准
![](/icons/59134dou2.gif)
TIME
使用方法:TIME(精度)
该类型包含了小时、分和秒
![](/icons/59134dou.gif)
格式为hh:mm:ss(h表示小时、m表示分、s表示秒)
精度可选择
![](/icons/59134dou.gif)
(……)
时间以世界标准时间(UniversalCoordinatedTime
![](/icons/59134dou.gif)
UTC)为准
![](/icons/59134dou.gif)
即00:00:00表示.格林威治
![](/icons/59134de.gif)
午夜
![](/icons/59134dou.gif)
服务器
![](/icons/59134de.gif)
时区隐含
![](/icons/59134de.gif)
![](/icons/59134dou2.gif)
如果不需要秒
![](/icons/59134de.gif)
小数部分
![](/icons/59134dou.gif)
那么TIME
![](/icons/59134de.gif)
长度为 8个
![](/icons/59134zifu.gif)
![](/icons/59134dou2.gif)
否则就是 8位长度在加上精度:hh:mm:ss.p
![](/icons/59134dou2.gif)
它只能和其它TIME类型数据进行比较
![](/icons/59134dou2.gif)
如果没有指定精度
![](/icons/59134dou.gif)
精度默认为0
TIMEWITHTIMEZONE
使用方法:TIME(精度)WITHTIMEZONE
这个值要符合TIME数据类型
TIMEZONE部分表示相对UTC
![](/icons/59134de.gif)
时差:00:00:00+hh:mm
![](/icons/59134dou2.gif)
它
![](/icons/59134de.gif)
范围为-12:59到13:00
![](/icons/59134dou2.gif)
精度表示秒
![](/icons/59134de.gif)
小数部分
![](/icons/59134dou2.gif)
带有TIMEZONE
![](/icons/59134de.gif)
TIME长度为14个
![](/icons/59134zifu.gif)
加上精度
![](/icons/59134dou.gif)
在加上
![](/icons/59134yi.gif)
个分隔符
![](/icons/59134dou2.gif)
只可以和带有TIMEZONE
![](/icons/59134de.gif)
TIME类型数据进行比较
TIMESTAMP
使用方法:TIMESTAMP(精度)
该类型包含有年、月、日、时、分、秒
![](/icons/59134dou.gif)
格式为:YYYY-MM-DDhh:mm:ss.
![](/icons/59134dou2.gif)
可以包括秒
![](/icons/59134de.gif)
小数部分
![](/icons/59134dou.gif)
这由定义
![](/icons/59134de.gif)
精度决定
![](/icons/59134dou2.gif)
它
![](/icons/59134de.gif)
日期部分符合公历标准
![](/icons/59134dou.gif)
时间部分为UTC格式
![](/icons/59134dou2.gif)
默认为当地时区
![](/icons/59134dou2.gif)
时标
![](/icons/59134de.gif)
长度为19个
![](/icons/59134zifu.gif)
![](/icons/59134dou.gif)
加上精度
![](/icons/59134dou.gif)
在加上精度分隔符
![](/icons/59134dou2.gif)
许多系统偏离上述定义
![](/icons/59134de.gif)
长度
![](/icons/59134dou.gif)
如UNIX风格时标格式为:
![](/icons/59134dou.gif)
YYYY-MM-DDhh:mm:ss.p
![](/icons/59134dou2.gif)
如果没有定义精度
![](/icons/59134dou.gif)
默认值为6
![](/icons/59134dou.gif)
但是许多数据库公司默认为0
![](/icons/59134dou.gif)
所以请参考你
![](/icons/59134de.gif)
开发文档
![](/icons/59134dou2.gif)
时标只可以和其它TIMESTAMP类型
![](/icons/59134de.gif)
值相比较
![](/icons/59134dou2.gif)
TIMESTAMPWITHTIMEZONE
使用方法:TIMESTAMP(精度)WITHTIMEZONE
时标部分符合上述TIMESTAWP
![](/icons/59134de.gif)
规则
![](/icons/59134dou2.gif)
精度代表秒
![](/icons/59134de.gif)
小数部分
![](/icons/59134dou2.gif)
时区部分
![](/icons/59134de.gif)
要求和TIMEWITHTIMEZONE
![](/icons/59134yi.gif)
样
![](/icons/59134dou.gif)
即时区符合UTC规范标准
![](/icons/59134dou.gif)
范围在-12:59到+13:00的间
![](/icons/59134dou2.gif)
总长度为25个
![](/icons/59134zifu.gif)
![](/icons/59134dou.gif)
加上精度
![](/icons/59134dou.gif)
加上
![](/icons/59134yi.gif)
个精度分隔符:YYYY-MM-DDhh:mm:ss.p
![](/icons/59134dou2.gif)
它只能和其它TIMESTAMPWITHTIMEZONE类型
![](/icons/59134de.gif)
数据进行比较
![](/icons/59134dou2.gif)
Interval
Interval用于表示时间尺度
![](/icons/59134dou2.gif)
例如
![](/icons/59134dou.gif)
你可以用操作符(将在下面进行解释)去计算两个日期间天数并加以保存
各个公司在处理
![](/icons/59134int.gif)
erval上有很大
![](/icons/59134de.gif)
区别——有些公司提供区别
![](/icons/59134de.gif)
度量单位
![](/icons/59134dou.gif)
如年或者分钟
![](/icons/59134dou.gif)
而有些公司在根本就不支持
![](/icons/59134int.gif)
erval
![](/icons/59134dou2.gif)
SQL92标准
![](/icons/59134de.gif)
![](/icons/59134int.gif)
erval类型只提供
![](/icons/59134yi.gif)
种子类型:INTERVAL
INTERVAL
使用方法:INTERVAL(限定语)
有两种类型
![](/icons/59134de.gif)
![](/icons/59134int.gif)
erval:
![](/icons/59134yi.gif)
种为“年份-月份”
![](/icons/59134dou.gif)
即保存年份和月份(YYYY-MM);
![](/icons/59134yi.gif)
种为“天-时间”(DDHH:MM:SS)
![](/icons/59134dou.gif)
用来保存天数、小时、分钟和秒
![](/icons/59134dou2.gif)
限定语——在某些数据库中
![](/icons/59134int.gif)
erval前导精度(leadprecision)——根据其值来指示
![](/icons/59134int.gif)
erval采用“年份-月份”还是“天-时间”方式
![](/icons/59134int.gif)
erval可正可负
![](/icons/59134dou2.gif)
当和其它
![](/icons/59134int.gif)
erval类型变量相比较时
![](/icons/59134dou.gif)
结果保持最大精度
![](/icons/59134dou.gif)
如有必要则补零
![](/icons/59134dou2.gif)
INTERVAL全部由整
![](/icons/59134shuzu.gif)
成
![](/icons/59134dou.gif)
除了含有小数
![](/icons/59134de.gif)
秒的外
![](/icons/59134dou2.gif)
“年份-月份”类型
![](/icons/59134de.gif)
![](/icons/59134int.gif)
erval变量只能和其它
![](/icons/59134de.gif)
“年份-月份”
![](/icons/59134de.gif)
![](/icons/59134int.gif)
erval变量进行比较
![](/icons/59134dou2.gif)
“天-时间”类型也和此类似
![](/icons/59134dou2.gif)
操作符
操作结果类型
当处理日期时间时
![](/icons/59134dou.gif)
时区保持不变——尽管有些数据库为了比较而将其中
![](/icons/59134de.gif)
![](/icons/59134yi.gif)
个时区转换为另
![](/icons/59134yi.gif)
个
![](/icons/59134dou2.gif)
存在
![](/icons/59134yi.gif)
些操作关键字
![](/icons/59134dou.gif)
如OVERLAPS和EXTRACT
![](/icons/59134dou.gif)
它们用于操作和比较datetime类型数据
![](/icons/59134dou2.gif)
然而
![](/icons/59134dou.gif)
区别
![](/icons/59134de.gif)
数据库在这些操作关键字使用方法和支持方式上有着很大
![](/icons/59134de.gif)
区别
OVERLAPS用于计算时间交叠
![](/icons/59134de.gif)
跨度
![](/icons/59134dou.gif)
其操作对象可以是两个datetime也可以是
![](/icons/59134yi.gif)
个datetime和
![](/icons/59134yi.gif)
个
![](/icons/59134int.gif)
erval
![](/icons/59134dou2.gif)
EXTRACT用于提取datetime或者
![](/icons/59134int.gif)
erval类型数据
![](/icons/59134de.gif)
某个部分
![](/icons/59134dou.gif)
如在DATA类型数据中提取月份
数据类型
由于已建立
![](/icons/59134de.gif)
标准是为了各公司在现有基础上实现实际上
![](/icons/59134de.gif)
数据类型
![](/icons/59134de.gif)
![](/icons/59134dou.gif)
因此在具体限制、参数和数据类型等方面
![](/icons/59134dou.gif)
你还是需要经常参考你
![](/icons/59134de.gif)
数据库文档