要用to_date语句
例如
SELECT to_date('18-JUN-99','dd-mm-yy') FROM dual其中:
TO_DATE(dateStr, 'DD-MM-YY')
是按照指定格式,将字符串dateStr转换为DATE类型的值
不过,得到的日期是
2099/06/18
哈哈
于是,你就得设定一个分界点,例如取80为界,
即:假定'18-JUN-80'被认为是1980年,'18-JUN-79'被认为是2079年
那么,语句这样写:
SELECT
CASE
WHEN ( TO_NUMBER( SUBSTR('18-JUN-99', 8, 2)) > 79)
THEN ADD_MONTHS( TO_DATE('18-JUN-99','dd-mm-yy'), -1200)
ELSE TO_DATE('18-JUN-99','dd-mm-yy')
END
FROM DUAL;
其中:ADD_MONTHS(dateVal -1200)是在时间值dateVal上减去100年得到的就是正确的时间
1999/06/18
例如
SELECT to_date('18-JUN-99','dd-mm-yy') FROM dual其中:
TO_DATE(dateStr, 'DD-MM-YY')
是按照指定格式,将字符串dateStr转换为DATE类型的值
不过,得到的日期是
2099/06/18
哈哈
于是,你就得设定一个分界点,例如取80为界,
即:假定'18-JUN-80'被认为是1980年,'18-JUN-79'被认为是2079年
那么,语句这样写:
SELECT
CASE
WHEN ( TO_NUMBER( SUBSTR('18-JUN-99', 8, 2)) > 79)
THEN ADD_MONTHS( TO_DATE('18-JUN-99','dd-mm-yy'), -1200)
ELSE TO_DATE('18-JUN-99','dd-mm-yy')
END
FROM DUAL;
其中:ADD_MONTHS(dateVal -1200)是在时间值dateVal上减去100年得到的就是正确的时间
1999/06/18
解决方案 »
- 菜鸟提问,如何查看所有的SET命令
- Oracle 错误 PLS-00103 存储过程实验
- sybase触发器转成oracle~~大家帮忙~
- 排序的超级难的问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 求助一SQLSERVER中的SQL语句在ORACLE中怎样实现。
- 请问 ,如何在不同用户间导数据结构
- 请问.net如何取出CLOB类型字段的数据?
- ☆★☆★☆有SQL Server基础,想学学Oracle,大家给点意见吧√√√
- oracle未找到要求的from关键字
- oracle11 r2 提示TNS-12541: TNS: 无监听程序
- SQL问题?
- 急!请问如何从DMP 中恢复数据库?(我不知该数据库内容和用户)
要符合yyyy-mm-dd hh:mi:ss规则
其中yyyy是四位数字的年,mm是两位数字的月份(01-12)dd 两位数字的天(01-31)
你的格式字符串不对啊
------------------------------
2004-ABR-20