Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle日期转换输出2000秒,而不是要求的90年代_Sql_Oracle_Date - Fatal编程技术网

Sql Oracle日期转换输出2000秒,而不是要求的90年代

Sql Oracle日期转换输出2000秒,而不是要求的90年代,sql,oracle,date,Sql,Oracle,Date,在执行以下查询期间,输出为2090 select to_char(to_date('10-OCT-90', 'DD-MON-YY'), 'YYYY') from dual; 所需输出为1990,代码段中的日期为出生日期 编辑: 输入日期是从表中提取的,因此日期是DD-MON-YY格式。对于以字符串形式解析两位数年份的替代方法,Oracle提供了。因此,您的查询将是 select to_char(to_date('10-OCT-90', 'DD-MON-RR'), 'YYYY') from du

在执行以下查询期间,输出为2090

select to_char(to_date('10-OCT-90', 'DD-MON-YY'), 'YYYY') from dual;
所需输出为1990,代码段中的日期为出生日期

编辑:
输入日期是从表中提取的,因此日期是DD-MON-YY格式。

对于以字符串形式解析两位数年份的替代方法,Oracle提供了。因此,您的查询将是

select to_char(to_date('10-OCT-90', 'DD-MON-RR'), 'YYYY') from dual;
从引用的Oracle文档:

RR datetime format元素类似于YY datetime format元素,但它为在其他时间存储日期值提供了额外的灵活性。RR datetime format元素允许您通过仅指定年份的最后两位数字来存储21世纪的20世纪日期


为了解决字符串中两位数的年份问题,Oracle提供了。因此,您的查询将是

select to_char(to_date('10-OCT-90', 'DD-MON-RR'), 'YYYY') from dual;
从引用的Oracle文档:

RR datetime format元素类似于YY datetime format元素,但它为在其他时间存储日期值提供了额外的灵活性。RR datetime format元素允许您通过仅指定年份的最后两位数字来存储21世纪的20世纪日期


使用RR而不是YY。请参见此处:

使用RR而不是YY。请参见此处:

尝试像这样使用RR:

select to_char(to_date('10-OCT-90', 'DD-MON-RR'), 'YYYY') from dual;

还请注意,您应该以YYYY格式存储日期,因为正确假设出生年份为2000年、1900年、1800年或……;会使人混淆。)

报告说:

YY只允许检索一年中的两位数,例如 1999年为99。其他数字(19)自动分配给 本世纪。RR通过以下方式将两位数年份转换为四位数年份: 四舍五入

50-99存储为1950-1999,00-49结束的日期存储为 2000-2049. RRRR接受四位数字输入(尽管不是必需的), 并像RR一样转换两位数的日期。YYYY接受4位输入 但不做任何日期转换


试着像这样使用RR:

select to_char(to_date('10-OCT-90', 'DD-MON-RR'), 'YYYY') from dual;

还请注意,您应该以YYYY格式存储日期,因为正确假设出生年份为2000年、1900年、1800年或……;会使人混淆。)

报告说:

YY只允许检索一年中的两位数,例如 1999年为99。其他数字(19)自动分配给 本世纪。RR通过以下方式将两位数年份转换为四位数年份: 四舍五入

50-99存储为1950-1999,00-49结束的日期存储为 2000-2049. RRRR接受四位数字输入(尽管不是必需的), 并像RR一样转换两位数的日期。YYYY接受4位输入 但不做任何日期转换

今天选择TRUNC(SYSDATE),
截止日期(出生日期,'DD-MON-RR')DOB,
出生日期
来自TM_DM_客户端
其中客户号为('22943179')
输出

Today   DOB BIRTH_DATE
10/1/2019   1/1/2041    1/1/1941
今天选择TRUNC(SYSDATE),
截止日期(出生日期,'DD-MON-RR')DOB,
出生日期
来自TM_DM_客户端
其中客户号为('22943179')
输出

Today   DOB BIRTH_DATE
10/1/2019   1/1/2041    1/1/1941

如果DOB是27-08-1947,我的日期栏(DOB)也有同样的问题。我使用下面的转换格式得到正确的年份来计算年龄

TO_DATE(TO_CHAR(DOB,'DD-MON-YYYY'), 'DD-MON-YYYY')

TO_DATE(TO_CHAR(DOB,'DD-MM-YYYY'), 'DD-MM-YYYY')

如果DOB是27-08-1947,我的日期栏(DOB)也有同样的问题。我使用下面的转换格式得到正确的年份来计算年龄

TO_DATE(TO_CHAR(DOB,'DD-MON-YYYY'), 'DD-MON-YYYY')

TO_DATE(TO_CHAR(DOB,'DD-MM-YYYY'), 'DD-MM-YYYY')

MySQL还是Oracle?不要标记未涉及的产品…通过查看标题删除MySQL!谢谢@rahultripathi也可能是1890年。很多人也是在那一年出生的。顺便说一句,
输入日期是从表中提取的,所以日期是DD-MON-YY格式的
-输入日期还是输入字符串?您要将哪种类型的列转换为
YYYY
格式?MySQL还是Oracle?不要标记未涉及的产品…通过查看标题删除MySQL!谢谢@rahultripathi也可能是1890年。很多人也是在那一年出生的。顺便说一句,
输入日期是从表中提取的,所以日期是DD-MON-YY格式的
-输入日期还是输入字符串?您试图转换为
YYYY
格式的列的类型?to_char(to_date('07-NOV-15','DD-MON-RR'),'YYYY')的结果是什么?今天,明天?结果是2015年。。。生病了。to_char(to_date('07-NOV-15','DD-MON-RR'),'YYYY')的结果如何?今天,明天?结果是2015年。。。生病的