PostgreSQL数据库学习手册之日期时间支持.doc

PostgreSQL数据库学习手册之日期时间支持.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PostgreSQL数据库学习手册之日期时间支持

PostgreSQL数据库学习手册之日期/时间支持 PostgreSQL 使用一个内部的启发式分析器 用于所有的日期/时间支持.日期和时间都是以字串形式输入的, 然后用一个初步的判断分解为在该数域里能有什么样的信息. 每个数域都被解释,并且要么是被赋予一个数字值,要么是忽略, 要么是被拒绝.分析器里包含内部的查询表,用于所有文本域, 包括月份,星期几,和时区. 这份附录包含这些查询表的信息,及描述了分析器用来对时间和日期 解码的步骤.   A.1. 日期/时间输入解析   日期/时间类型都是使用一套通用的过程进行解析的。   日期/时间输入解析   1.   把输入字串分解为一个个记号,然后把每个记号分成字串, 时间,时区,或数字几类。   1.   如果一个数字记号包含一个冒号(:), 那么这是个时间字串。包括随后所有的数据位和冒号。   2.   如果这个数字记号包含一个划线(-),斜杠(/), 或两个或多个点(.),那么他就是个日期字串, 可能有一个文本月份。   3.   如果这个记号只是数字,那么他要么是个独立的字段, 要么是个 ISO 8601 连接的日期(比如是 1999 年一月 13 日)或是连接的时间(比如,141516 是 14:15:16)。   4.   如果记号以一个加号(+)开头或减号(-)开头, 那么他要么是个时区,要么就是个特别的字段。   2.   如果记号是个文本字串,那么和可能的字串进行匹配。   1.   做一次二分表查找,看看这个记号是特别字串(比如,today), 日期(比如,Thursday),月份(比如,January), 还是个无关痛痒的字(比如,at,on)。   为字段设置数值和位掩码。 比如,为 today 设置年,月,日, 及为 now 这样的还需要设置另外的时,分,秒。   2.   如果没有找到,则做一次类似的二分表搜索,找和记号匹配的时区。   3.   如果还没有找到,抛出一个错误。   3.   记号是个数字或数字字段。   1.   如果超过4位数字,而且前面也没有读到其他日期字段, 那么就解释成一个连接的日期(比如。 8和6位分别解释成年,月,和日,而7和5位分别解释成年,年日。   2.   如果记号是三位数字,并且已解码了一个年份,那么解释成年日。   3.   如果已读取了四和六位数字,并且已读取了一个年份, 那么就解释成时间。   4.   如果是四或更多位,则解析成一个年份。   5.   如果是欧洲日期模式,并且还未读取到日期字段,并且数值小于或等于31, 那么解析成某一天。   6.   如果还未读取月份字段,并且数值小于或等于12,那么解析成月份。   7.   如果日期域尚未读取,并且数值小于或等于31,则解析成一天。   8.   如果是两位或四或更多位数字,那么解析成一年。   9.   否则,抛出一个错误。  4.   如果声明了 BC,则对年份取其负数并加一,用于内部保存。 (在格里高利历法里没有零年,所以数字上的 1BC 是公元零年。)  5.   如果没有声明 BC,并且年份字段有两个数据位的长度, 那么把年份调整为 4 位。如果该字段小于 70,那么加 2000;否则,加 1900。   技巧: 格里高利年份 AD 1-99能用前导零的方式使用4位数字 (也就是说,0099 是 AD 99)。以前的 PostgreSQL 版本接受三位数字的年份和一位数字的年份,不过从版本 7.0 开始,这个 规则更严格了,以减少可能的混淆。   Table A-1 显示了能用作月份的名字 缩写的记号。   Table A-1. 月份缩写   月份 缩写   April Apr   August Aug   December Dec   February Feb   January Jan   July Jul   June Jun   March Mar   November Nov   October Oct   September Sep, Sept   注意: 三月没有明确的缩写,原因显而易见.   Table A-2 显示了允许用作星期几的名字。   Table A-2. 星期几的缩写   日子 缩写   Sunday Sun   Monday Mon   Tuesday Tue, Tues   Wednesday Wed, Weds   Thursday Thu, Thur, Thurs   Friday Fri   Saturday Sat   Table A-3 显示了用于各种修饰 用途的记号。   Table A-3. 日期/时间字段修饰词   标识符 描述   ABSTIM

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档