会员名称:  密码:   验证码:     会员注册  忘记密码? 
设为首页
加入收藏
返回首页
媒体资讯>> 业界资讯 - 会展动态 - 竞赛&活动 - IT互联网  媒体学院>> 图形图像 - 网页制作 - 网络编程 - 数据库 - 服务器 - 网络应用  作品赏析>> 视频音响 - CG动画 - UI设计 - 平面设计 - 网页设计 - 摄影映象 - 三维2D - 其它设计  媒体工作室>> 视频影像 - 音频声响 - 三维2D - 平面视觉 - 软硬技术 - 摄影映象  人物访谈>> 人物访谈 - 华夏新锐  媒体杂志>> 媒体杂志  素材图库>> 丽景佳图 - 设计素材 - 资料图库 - 矢量图库 - 动态动画 - 特色图标  酷站赏析>> 韩国网站 - 国外网站 - 国内网站  会员中心>> 会员注册 - 会员登陆
当前位置:华夏媒体 - > 媒体学院 - > 数据库 - > MYSQL - > MySQL数据库技术(08)
   
   
   
MySQL数据库技术(08) MySQL数据库技...  [MYSQ...]
More... 
   
网络协议X档案全集(十) 网络协议X档案...  [其它...]
不可忽视的BIOS参数设置 不可忽视的BIO...  [其它...]
微软IE浏览器非常规修改全攻略(上) 微软IE浏览器非...  [其它...]
微软IE浏览器非常规修改全攻略(下) 微软IE浏览器非...  [其它...]
网管十招 网管十招  [其它...]
微软安全问题 源自OS和IE中集成RSS 微软安全问题 ...  [其它...]
修改注册表使电脑更安全 修改注册表使电...  [其它...]
利用注册表管理IP地址 利用注册表管理...  [其它...]
有关IIS HACK的一些方法整理 有关IIS HACK的...  [其它...]
More 
MySQL数据库技术(08)
编辑:华夏媒体     作者:未知     来源:网络     时间:2006-07-29     总浏览量:2162
文字大小:[      ]     文字颜色:      双击滚屏/单击停止

[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [下一页] 


    1. DATE、TIME 和DATETIME 列类型DATE、TIME 和DATETIME 类型存储日期、时间以及日期和时间值的组合。其格式为“YYYY - MM - DD”、“h h : m m : s s”和“YYYY - MM - DD hh:mm:ss”。对于D ATETIME 类型,日期和时间部分都需要;如果将D ATE 值赋给DATETIME 列,MySQL 会自动地追加一个为“0 0 : 0 0 : 0 0”的时间部分。MySQL 对D ATETIME 和TIME 表示的时间在处理上稍有不同。对于D ATETIME ,时间部分表示某天的时间。而TIME 值表示占用的时间(这也就是为什么其取值范围如此之大而且允许取负值的原因)。用TIME 值的最右边部分表示秒,因此,如果插入一个“短”(不完全)的时间值,如“1 2 : 3 0”到TIME 列,则存储的值为“ 0 0 : 1 2 : 3 0”,即被认为是“12 分30 秒”。如果愿意,也可用TIME 列来表示天的时间,但是要记住这个转换规则以免出问题。为了插入一个“12 小时30 分钟”的值,必须将其表示为“ 1 2 : 3 0 : 0 0”。
    2. TIMESTAMP 列类型
    TIMES TAMP 列以YYYYMMDDhhmmss 的格式表示值,其取值范围从19700101000000到2037 年的某个时间。此取值范围与UNIX 的时间相联系,在UNIX 的时间中,1970 年的第一天为“零天”,也就是所谓的“新纪元”。因此1970 年的开始决定了T I M E S TAMP 取值范围的低端。其取值范围的上端对应于UNIX 时间上的四字节界限,它可以表示到2037年的值。(TIMES TAMP 值的上限将会随着操作系统为扩充UNIX 的时间值所进行的修改而增加。这是在系统库一级必须提及的。MySQL 也将利用这些更改。)TIMES TAMP 类型之所以得到这样的名称是因为它在创建或修改某个记录时,有特殊的记录作用。如果在一个TIMES TAMP 列中插入NULL,则该列值将自动设置为当前的日期和时间。在建立或更新一行但不明确给TIMES TAMP 列赋值时也会自动设置该列的值为当前的日期和时间。但是,仅行中的第一个TIMES TAMP 列按此方式处理,即使是行中第一个TIMESTAMP列,也可以通过插入一个明确的日期和时间值到该列(而不是NULL)使该处理失效。

    TIMES TAMP 列的定义可包含对最大显示宽度M 的说明。表2 - 1 2给出了所允许的M 值的显示格式。如果TIMES TAMP 定义中省略了M 或者其值为0或大于1 4,则该列按TIMES TAMP(14) 处理。取值范围从1到1 3的M 奇数值作为下一个更大的偶数值处理。T I M E S TAMP 列的显示宽度与存储大小或存储在内部的值无关。TIMES TAMP 值总是以4 字节存放并按14 位精度进行计算,与显示宽度无关。为了明白这一点,按如下定义一个表,然后插入一些行,进行检索:

    从表面上看,出现的行排序有误,第一列中的值全都相同,所以似乎排序是根据第二列中的值进行的。这个表面反常的结果是由于事实上, MySQL 是根据插入T I M E S TAMP 列的全部14 位值进行排序的。MySQL 没有可在记录建立时设置为当前日期和时间、并从此以后保持不变的列类型。如果要实现这一点,可用两种方法来完成:
    ■ 使用T I M E S TAMP 列。在最初建立一个记录时,设置该列为N U L L,将其初始化为当前日期和时间:

    在以后无论何时更改此记录,都要明确地设置此列为其原有的值。赋予一个明确的值使时间戳机制失效,因为它阻止了该列的值自动更新:

    ■ 使用D ATETIME 列。在建立记录时,将该列的值初始化为NOW( ):

    无论以后何时更新此记录,都不能动该列:U P D ATE tbl_name SET /* angthing BUT dt_col here */ WHERE ...如果想利用T I M E S TAMP 列既保存建立的时间值又保存最后修改的时间值,那么可用一个T I M E S TAMP 列来保存修改时间值,用另一个T I M E S TAMP 列保存建立时间值。要保证保存修改时间值的列为第一个T I M E S TA M P,从而在记录建立或更改时自动对其进行设置。使保存建立时间值的列为第二个T I M E S TA M P,并在建立新记录时将其初始化为NOW( )。这样第二个T I M E S TAMP 的值将反映记录建立时间,而且以后将不再更改。
    3. YEAR 列类型
    YEAR 是一个用来有效地表示年份值的1个字节的列类型。其取值范围为从1901 到2 1 5 5。在想保存日期信息但又只需要日期的年份时可使用YEAR 类型,如出生年份、政府机关选举年份等等。在不需要完全的日期值时, YEAR 比其他日期类型在空间利用上更为有效。
YEAR 列的定义可包括显示宽度M 的说明,显示宽度应该为4 或2。如果YEAR 定义中省略了M,其缺省值为4。TINYINT 与YEAR 具有相同的存储大小(一个字节),但取值范围不同。要使用一个整数类型且覆盖与YEAR 相同的取值范围,可能需要SMALLINT 类型,此类型要占两倍的空间。在所要表示的年份取值范围与YEAR 类型的取值范围相同的情况下, YEAR 的空间利用率比SMALLINT 更为有效。YEAR 相对整数列的另一个优点是MySQL 将会利用MySQL 的年份推测规则把2 位值转换为4 位值。例如,97 与14 将转换为1997 和2 0 1 4。但要认识到,插入数值00 将得到0000 而不是2 0 0 0。如果希望零值转换为2 0 0 0,必须指定其为串“0 0”。


[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [下一页] 

打印   收藏   关闭   至顶部  


关于我们 | 联系我们 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 意见建议
版权所有  Copyright © 2005-2006 华夏媒体(Media86.Com). All Rights Reserved .
网站备案号:粤ICP备06055307号