<!-- [if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!-- [if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!-- [if !mso]>
<object
classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui>
</object>
<style>
st1/:*{behavior:url(#ieooui) }
</style>
<![endif]--><!-- [if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
table.MsoTableGrid
{mso-style-name:网格型;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
border:solid windowtext 1.0pt;
mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-border-insideh:.5pt solid windowtext;
mso-border-insidev:.5pt solid windowtext;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
Oracle
数据库中存储4
位的年份,但是当你只提供2
位数字的年份,那么oracle
就会根据你所使用的YY
还是RR
格式来解释实际,如果提供了完整的年份,那是最好的。
1.RR
格式:
|
指定年的2
位数字
|
00-49
|
50-99
|
当年的后
两位数字
|
00-49
|
规则1:
指定年的前两位数字就等于当年的前两位数字
|
规则2:
指定年的前两位数字就等于当年的前两位数字减去1
|
50-99
|
规则3:
指定年的前两位数字就等于当年的前两位数字加上1
|
规则4:
指定年的前两位数字就等于当年的前两位数字
|
我们来看看下面这个查询:
SQL> select
2
to_char(sysdate,'dd-mm-yyyy') date_1,
3
to_char(to_date('09-03-11','dd-mm-rr'),'dd-mm-yyyy')
date_2,
4
to_char(to_date('09-03-50','dd-mm-rr'),'dd-mm-yyyy')
date_3
5
from dual;
DATE_1
DATE_2
DATE_3
---------- ---------- ----------
09-03-2011 09-03-2011 09-03-1950
当前的日期为2011
年3
月9
日
DATE_2
验证了上面的规则1
:我提供的rr(11)
与当前的系统日期的年份2011
的最后两位数字11
都00-49
这个范围。
DATE_3
验证了上面的规则2
:我提供的rr(50)
所在的范围(50-99)
大于当前系统年份2011
的最后两位数字11
所在的范围(00-49)
,所以将20-1=19
,再组合到一起就得到了1950
年,
这才是指定年份的年。
如果我们要验证规则3
和规则4
,那么就得更改操作系统时间。
在XP
系统中,我们想要修改系统时间的话,可以按照下面的方法来进行。
1
、双击任务栏右下角的时间,打开“日期和时间属性”对话窗口。
2
、在时间和日期选项卡中,在日期和时间栏里修改我们需要的日期及时间。
3
、确定退出后,我们可以看到日期和时间已经是我们想要的结果了。
修改会话的时间格式:
SQL> alter session set
nls_date_format='yyyy-mm-dd';
Session altered
SQL> select to_char(sysdate,'yyyy-mm-dd
hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
------------------------------
2087-03-09 16:27:29
下面验证规则3
和规则4
:
SQL> select
2
to_char(sysdate,'dd-mm-yyyy') date_1,
3
to_char(to_date('09-03-11','dd-mm-rr'),'dd-mm-yyyy')
date_2,
4
to_char(to_date('09-03-50','dd-mm-rr'),'dd-mm-yyyy')
date_3
5
from dual;
DATE_1
DATE_2
DATE_3
---------- ---------- ----------
09-03-2087 09-03-2111 09-03-2050
规则3
:指定的年份是11
年,其所在的范围(00-49)
小于与当前系统年份2087
的年份最后两位数字不在范围(50-99)
,所以当前年份的前两位数字20+1=21
才是指定年份的具体日期:2111
年3
月9
日。
规则4
:同规则1
,我们得到了DATE_3
的值:09-03-2050
。
注意:如果日期中的年份使用RRRR
格式,但是只提供了2
位的年份,那么oracle
数据库就会使用RR
格式来解释日期。
2.YY
格式
在使用YY
格式时,如果只提供年份的后两位,那么此年份的前两位与当前系统年份的前两位相同。
SQL> alter session set nls_date_format='yyyy-mm-dd
hh24:mi:ss';
Session altered
SQL> select
2
to_char(sysdate) date_1,
3
to_char(to_date('09-03-11','dd-mm-yy'),'dd-mm-yyyy')
date_2,
4
to_char(to_date('09-03-50','dd-mm-yy'),'dd-mm-yyyy')
date_3
5
from dual;
DATE_1
DATE_2
DATE_3
------------------- ---------- ----------
2087-03-09 16:49:02 09-03-2011 09-03-2050
注意:如果日期中的年份使用了YYYY
格式,但是只提供了2
位的年份,那么oracle
数据库就会使用YY
格式来解释日期。
分享到:
相关推荐
在Oracle SQL中,根据年份和周数获取特定日期是一个常见的需求,特别是在处理时间序列数据或进行周期性分析时。本文将深入探讨如何利用Oracle SQL的功能来实现这一目标,包括理解Oracle中的日期函数、如何计算特定...
Oracle 中日期处理大全 在 Oracle 中,日期处理是数据库管理系统中一个非常重要的方面。处理日期信息需要精准和细致,否则可能会出现错误的结果。在本节中,我们将详细介绍 Oracle 中日期处理的各种方法和函数。 ...
在Oracle中,经常需要对日期进行格式化处理,常见的操作包括将日期转换为字符串以及将字符串转换为日期。 1. **`TO_CHAR(date, '格式')`**:该函数用于将日期类型转换成指定格式的字符串。例如: ```sql SELECT...
这里,`yyyy`代表四位数的年份,`mm`代表两位数的月份,`dd`代表两位数的日期,`hh24`代表24小时制的小时,`mi`代表分钟,`ss`代表秒。 2. `TO_CHAR`函数则用于将日期转换为字符串。例如,获取当前日期和时间的...
Oracle 日期和时间的存储与处理 Oracle 日期和时间的存储与处理是 Oracle Database 11g SQL 开发指南中的重要章节。本章节主要介绍了处理并存储一个特定的日期和时间,包括使用 DATE 类型存储日期和时间、使用...
Oracle Exdate是Oracle数据库系统中一个重要的日期时间处理功能,主要涉及在数据库操作中对日期进行复杂的计算和比较。在Oracle认证中,Exdate部分是一个关键的考察点,因此理解和熟练掌握这一知识点对于数据库管理...
Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,例如 DATE_ADD 函数。在 T-...
- `YYYY`: 年份,四位数字表示。 - `MM`: 月份,两位数字表示。 - `DD`: 日期,两位数字表示。 - `DAY`: 星期几,全名表示。 - `D`: 星期几,数字表示,范围是1(周日)到7(周六)。 - `WW`: 第几周,一年中的第几...
Oracle 中的日期格式字段处理是指在 Oracle 数据库中对日期和时间的格式化、转换和计算。下面是 Oracle 中日期格式字段处理的知识点总结: 1. 日期格式字符串:在 Oracle 中,日期格式字符串是用来指定日期和时间的...
在处理Oracle数据库中的日期类型数据时,经常会遇到需要将字符串转换为日期格式的情况。Oracle提供了一个非常强大的函数`to_date()`来实现这一功能。本文将详细介绍`to_date()`函数的基本用法以及一些需要注意的细节...
Oracle数据库作为全球广泛使用的数据库管理系统之一,提供了丰富的功能来处理复杂的数据操作。"Oracle行转列"是数据库查询中常见的一种需求,尤其是在数据分析和报表展示时。这个主题涉及到Oracle数据库中的聚合函数...
本文将根据给定的内容对Oracle中常用的时间函数进行详细介绍,并提供具体的使用示例。 #### 1. `Sysdate` `Sysdate`函数返回当前系统的日期和时间。 ```sql SQL> Select sysdate from dual; ``` 输出结果: ``` ...
常见的格式符号包括 YYYY、MM、DD、HH24、MI、SS 等,其中 YYYY 表示四位年份,MM 表示月份,DD 表示日,HH24 表示 24 小时制的小时,MI 表示分钟,SS 表示秒。 在 Oracle 中,可以使用不同的日期及时间格式,例如 ...
在Oracle数据库中,`SUBSTR`函数是一个非常重要的字符串处理函数,用于从指定的字符串中提取子串。该函数在实际应用中极为广泛,能够帮助用户灵活地处理数据,满足各种业务需求。下面将详细介绍`SUBSTR`函数的语法、...
这是因为Oracle中的日期函数通常接受日期类型作为输入参数,而实际应用中可能需要处理的是字符串格式的日期数据。 ##### CDate 函数 ``` CREATE OR REPLACE FUNCTION CDate (dateChar IN VARCHAR2) RETURN DATE IS...
`trunc`函数在Oracle中是非常重要的日期处理函数,它可以用于对日期进行不同级别的截断,例如: - `trunc(sysdate)`:返回当前日期,不包含时间部分。 - `trunc(sysdate, 'mm')`:返回当月的第一天。 - `trunc...
- Oracle支持多种格式模型,如`YYYY`表示四位年份,`MM`表示两位月份,`DD`表示两位日期,`HH24`表示24小时制小时,`MI`表示分钟,`SS`表示秒。还有其他如`MI AM/PM`、`SS.FF`(毫秒)等。 6. **时间区域和NLS_...
#### 二、处理带时间的文件名技巧 在上述脚本中,关键的一点是如何生成包含当前时间戳的文件名。具体实现方法如下: ```bash fmt=`date "+%Y-%m-%d[%H%M%S]"` ``` - `date "+%Y-%m-%d[%H%M%S]"`:这一命令使用`+`...
这五位作者均在Oracle领域拥有丰富的实践经验,并且是该领域的专家级人物。本书旨在帮助读者深入理解并掌握Oracle SQL的强大功能。 #### 二、核心概念与技术要点 ##### 1. Oracle SQL 概述 Oracle SQL 是 Oracle ...