兰色精灵 发表于 2015-1-16 22:38:20

MYSQL网页设计ORACLE DATE和TIMESTAMP数据范例的对照...

需要处理因此带来的更多的支持工作,这有可能会带来成本上的提高。在这种情况下,一些MySQL学习教程发行商可能倾向于选择别的开源数据库,例如遵循BSD授权的PostgreSQL。oracle|对照|数据|数据范例
原著JamesKoopmann

假如你想在ORACLE中存储DATE和工夫信息的话,实践上你由两种字段数据范例的选择的话,就让我们看看这两种数据范例的不同和它们供应了些甚么。



DATE数据范例

这个数据范例我们其实是太熟习了,当我们必要暗示日期和工夫的话城市想到date范例。它能够存储月,年,日,世纪,时,分和秒。它典范地用来暗示甚么时分事变已产生或将要产生。DATE数据范例的成绩在于它暗示两个事务产生工夫距离的器度粒度是秒。这个成绩将在文章稍后会商timestamp的时分被办理。可使用TO_CHAR函数把DATE数据举行传统地包装,到达暗示成多种格局的目标。

SQL>SELECTTO_CHAR(date1,MM/DD/YYYYHH24:MI:SS)"Date"FROMdate_table;

Date

---------------------------

06/20/200316:55:14

06/26/200311:16:36



我见到的年夜多半人堕入的贫苦就是盘算两个工夫间的距离年纪、月数、天数、小时数和秒数。你必要分明的是,当你举行两个日期的相减运算的时分,失掉的是天数。你必要乘上天天的秒数(1天=86400秒),然后,你能够再次盘算失掉你想要的距离数。上面就是我的办理办法,能够准确盘算出两个工夫的距离。我分明这个例子能够更冗长些,可是我是为了显现一切的数字来夸大盘算体例。

1SELECTTO_CHAR(date1,MMDDYYYY:HH24:MI:SS)date1,

2TO_CHAR(date2,MMDDYYYY:HH24:MI:SS)date2,

3trunc(86400*(date2-date1))-

460*(trunc((86400*(date2-date1))/60))seconds,

5trunc((86400*(date2-date1))/60)-

660*(trunc(((86400*(date2-date1))/60)/60))minutes,

7trunc(((86400*(date2-date1))/60)/60)-

824*(trunc((((86400*(date2-date1))/60)/60)/24))hours,

9trunc((((86400*(date2-date1))/60)/60)/24)days,

10trunc(((((86400*(date2-date1))/60)/60)/24)/7)weeks

11*FROMdate_table

DATE1DATE2SECONDSMINUTESHOURSDAYSWEEKS

------------------------------------------------------------------------------------

06202003:16:55:1407082003:11:22:57432718172

06262003:11:16:3607082003:11:22:572160121



TIMESTAMP数据范例

DATE数据范例的次要成绩是它粒度不克不及充足区分出两个事务哪一个先产生。ORACLE已在DATE数据范例上扩大出来了TIMESTAMP数据范例,它包含了一切DATE数据范例的年代日时分秒的信息,并且包含了小数秒的信息。假如你想把DATE范例转换成TIMESTAMP范例,就利用CAST函数。

SQL>SELECTCAST(date1ASTIMESTAMP)"Date"FROMt;

Date

-----------------------------------------------------

20-JUN-0304.55.14.000000PM

26-JUN-0311.16.36.000000AM



正如你看到的,在转换后的工夫段尾部有了一段“.000000”。这是由于从date转换过去的时分,没有小数秒的信息,缺省为0。并且显现格局是依照参数NLS_TIMESTAMP_FORMAT定的缺省格局显现。当你把一个表中date范例字段的数据移到另外一个表的timestamp范例字段中往的时分,能够间接写INSERTSELECT语句,oracle会主动为你做转换的。

1SELECTTO_CHAR(time1,MM/DD/YYYYHH24:MI:SS)"Date"FROMdate_table

Date

-------------------

06/20/200316:55:14

06/26/200311:16:36


MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。

再现理想 发表于 2015-1-19 20:02:00

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)

海妖 发表于 2015-1-26 19:48:54

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

再见西城 发表于 2015-2-4 20:05:28

分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。

乐观 发表于 2015-2-10 05:48:33

如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。

小魔女 发表于 2015-2-28 21:57:45

无法深入到数据库系统层面去了解和探究

admin 发表于 2015-3-10 08:42:57

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

冷月葬花魂 发表于 2015-3-17 06:10:20

SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。

谁可相欹 发表于 2015-3-17 06:10:20

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

柔情似水 发表于 2015-3-23 23:07:38

另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
页: [1]
查看完整版本: MYSQL网页设计ORACLE DATE和TIMESTAMP数据范例的对照...