1.6 顺应2000年(Year 2000 compliance)MySql本身己没有2000年有问题( Y2K ):
MySql使用Unix时间函数并且在2069年前没有日期问题, 所有2位年份被认为在1970年到2069年的范围,这意味着如果在一个year类型的列中存储的01,
MySql把它当作2001。
所有
MySql日期函数存储在一个文件'sql/time.cc'中,并且很仔细地编码保证是2000年安全的 。
MySql 3.22 和以后的版本,新的YEAR类型的列能在一个字节中存储0年和1901年到2155年,并用使用2或4位显示它们。
你可以用一种不是Y2K-safe的方式使用
MySql应用程序来深入该问题。例如,许多老的应用程序使用2位数字(它有二义性)而非4位数字存储或操作年份,这个问题可能与使用诸如00或99作为“丢失的”值的提示的应用程序混淆起来。
很不幸,这些问题可能很难修复,因为不同的应用程序可能由不同程序员编写,其中每一个可能使用了不同的约定和日期处理函数。
这里是简单的示范,显示
MySql在 2030 年之前没有任何日期问题。
mysql> DROP TABLE IF EXISTS y2k;
mysql> CREATE TABLE y2k (date date, date_time datetime, time_stamp timestamp);
mysql> INSERT INTO y2k VALUES ("1998-12-31","1998-12-31 23:59:59",19981231235959);
mysql> INSERT INTO y2k VALUES ("1999-01-01","1999-01-01 00:00:00",19990101000000);
mysql> INSERT INTO y2k VALUES ("1999-09-09","1999-09-09 23:59:59",19990909235959);
mysql> INSERT INTO y2k VALUES ("2000-01-01","2000-01-01 00:00:00",20000101000000);
mysql> INSERT INTO y2k VALUES ("2000-02-28","2000-02-28 00:00:00",20000228000000);
mysql> INSERT INTO y2k VALUES ("2000-02-29","2000-02-29 00:00:00",20000229000000);
mysql> INSERT INTO y2k VALUES ("2000-03-01","2000-03-01 00:00:00",20000301000000);
mysql> INSERT INTO y2k VALUES ("2000-12-31","2000-12-31 23:59:59",20001231235959);
mysql> INSERT INTO y2k VALUES ("2001-01-01","2001-01-01 00:00:00",20010101000000);
mysql> INSERT INTO y2k VALUES ("2004-12-31","2004-12-31 23:59:59",20041231235959);
mysql> INSERT INTO y2k VALUES ("2005-01-01","2005-01-01 00:00:00",20050101000000);
mysql> INSERT INTO y2k VALUES ("2030-01-01","2030-01-01 00:00:00",20300101000000);
mysql> INSERT INTO y2k VALUES ("2050-01-01","2050-01-01 00:00:00",20500101000000);
mysql> SELECT * FROM y2k;
+------------+---------------------+----------------+
| date | date_time | time_stamp |
+------------+---------------------+----------------+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+------------+---------------------+----------------+
13 rows in set (0.00 sec)
这表示DATE和DATETIME类型将不会有未来日期的任何问题(它们处理日期到 9999 )。
TIMESTAMP类型被用来存储当前时间,有一个仅2030-01-01的上限。TIMESTAMP在32位的机器上(有符号值)有一个从1970到2030的范围,在64位机器上它处理时间可达2106(无符号值)。
尽管
MySql是顺应Y2K的,但提供无二义性的输入是你的责任。对于
MySql处理二义性日期的输入(包含2位数字年份)的规则,详见7.3.6.1 Y2K 问题和日期类型。
1.7 SQL一般信息和教程在
MySql邮件列表上,这本书被多人推荐:
Judith S. Bowman, Sandra L. Emerson and Marcy Darnovsky
The Practical SQL Handbook: Using Structured Query Language
Second Edition
Addison-Wesley
ISBN 0-201-62623-3
http://www.awl.com
这本书也接受了
MySql 用户的一些建议:
Martin Gruber
Understanding SQL
ISBN 0-89588-644-8
Publisher Sybex 510 523 8233
Alameda, CA USA
一本SQL语言教程可在 http://www.geocities.com/SiliconValley/Vista/2207/sql1.HTML 找到。
SQL in 21 Tagen (用德语写的网上书籍) http://www.mut.de/leseecke/buecher/sql/inhalt.htm 。
1.8 有用的MySql相关链接 1.8.1 教程
- A beginner's tutoral of how to start using MySQL
- http://www.analysisandsolutions.com/code/mybasic.htm新手如何在一台Windows机器上安装和设置MySQL。
- 很多MySQL教程
- 建立一个基于<>bMySQL的网站
- MySQL perl 教程
- PHP/MySQL教程
1.8.2 Perl相关链接
1.8.3 MySql 讨论论坛
1.8.4 支持 MySql 的商业应用
- SupportWizard; Interactive helpdesk on the web (This product includes a licensed copy of MySQL)
- Right Now Web; Web automation for customer service
- Bazaar; Interactive Discussion Forums with web interface
- PhoneSweepT是世界的第一个商业电话扫描仪.近年来的很多侵入不是通过因特网,而是通过非法的拨号调制解调器.PhoneSweep让你通过循环地将电话发到你的公司控制的每个号码上来发现这些调制解调器,PhoneSweep有一个内置的专家系统,能识别出超过250种不同类型的遥远存取程序,包括Carbon CopyT、pcANYWHERET和Windows NT RAS.所有信息保存在SQL数据库,最后产生一份详细易懂的报告,说明你公司内那个拨号调制解调器的那项服务被刺探。
1.8.5 SQL客户程序
- 微软Windows 平台上MySQL编辑器/实用程序
- KDE MySQL客户
- Kiosk:一个用于数据库管理的MySQL客户 用Perl编写,将成为Bazaar的一部分。
1.8.6 支持MySql的Web 开发工具
- PHP :一种服务器端的嵌入HTML的脚本语言
- Midgard 应用服务器:基于MySQL和PHP强大的网站开发环境
- SmartWorker是一个Web应用开发平台
- XSP: e(X)tendible (s)erver (p)ages:是一个用Java编写的嵌入HTML的标签语言(以前XTAGS出名)
- dbServ:是对Web服务器的扩充,它将到数据库输出集成进你的HTML编码。你可以在你的输出使用任何HTML函数,只有客户端能阻止你。它作为独立的服务器或作为Java servlet运行。
- Chili!Soft平台无关的ASP
- MySQL+ PHP demos
- ForwardSQL:操作的MySQL数据库的HTML接口
- WWW-SQL:显示数据库信息
- Minivend:Web购物车
- HeiTML:是HTML的服务器端扩充,同时又是一种第四代语言语言
- Metahtml:一种WWW应用程序的动态编程语言
- VelocityGen for Perl and TCL
- Hawkeye因特网服务器套件
- Linux网络数据库连接
- WDBI:是作为一个很好支持MySQL数据库的通用前端的Web浏览器
- WebGroove脚本:HTML编译器和服务器端脚本语言
- 一种服务器端网站脚本语言
上一页 [1] [2] [3] 下一页