Oracle中关于时间的转换
2008-01-21 16:09
323 查看
上了小半年的班了,做的东西差不多都忘了,以后应该经常总结一下,方便自己以后查寻。今天先总结一下我在写存储过程中遇到的时间日期的问题:
1. date型的值与number型的值做运算,结果是date型,单位是天。
2. select to_char(sysdate,'yyyy') from dual; --年
select to_char(sysdate,'Q' from dual; --季
select to_char(sysdate,'mm') from dual; --月
select to_char(sysdate,'dd') from dual; --日
select to_char(sysdate,'ddd') from dual; --年中的第几天
select to_char(sysdate,'ww') from dual; --年中的第几周
select to_char(sysdate,'dd') from dual; --该月中的第几周
select to_char(sysdate,'d') from dual; --该周中的第几天(周日是第一天)
select (mod(to_number(to_char(sysdate,'d'))+6,8) + round((to_number(to_char(sysdate,'d'))+6)/8))from dual; --该周中的第几天(周一是第一天)
select to_char(sysdate,'day') from dual; --星期几
select to_char(sysdate,'hh') from dual; --小时12
select to_char(sysdate,'hh24') from dual; --小时24
select to_char(sysdate,'mi') from dual; --分
select to_char(sysdate,'ss') from dual; --秒
3. oracle 中的数据转换问题:
to_number(字符型),
to_date(字符型,'yyyy/mm/dd'), 或是其他的date_fomat.如yyyy-mm-dd hh24:mi:ss
to_char(数字型),
to_char(日期型,'yyyymmddhh24miss')
4. 如果用number型的值来代表时间(如231234代表23:12:34, 3456代表00:34:56)
当0点几分几秒时在把number转换成date时,就会出问题,
我的解决办法:将此时间+1000000,然后取第2到第7位,再转换成date型就不会出错了。测试如下
select to_char(to_date(substr(1000000 + 时间的NUMBER型 值,2,7),' hh24miss'), 'hh24miss') from dual;
1. date型的值与number型的值做运算,结果是date型,单位是天。
2. select to_char(sysdate,'yyyy') from dual; --年
select to_char(sysdate,'Q' from dual; --季
select to_char(sysdate,'mm') from dual; --月
select to_char(sysdate,'dd') from dual; --日
select to_char(sysdate,'ddd') from dual; --年中的第几天
select to_char(sysdate,'ww') from dual; --年中的第几周
select to_char(sysdate,'dd') from dual; --该月中的第几周
select to_char(sysdate,'d') from dual; --该周中的第几天(周日是第一天)
select (mod(to_number(to_char(sysdate,'d'))+6,8) + round((to_number(to_char(sysdate,'d'))+6)/8))from dual; --该周中的第几天(周一是第一天)
select to_char(sysdate,'day') from dual; --星期几
select to_char(sysdate,'hh') from dual; --小时12
select to_char(sysdate,'hh24') from dual; --小时24
select to_char(sysdate,'mi') from dual; --分
select to_char(sysdate,'ss') from dual; --秒
3. oracle 中的数据转换问题:
to_number(字符型),
to_date(字符型,'yyyy/mm/dd'), 或是其他的date_fomat.如yyyy-mm-dd hh24:mi:ss
to_char(数字型),
to_char(日期型,'yyyymmddhh24miss')
4. 如果用number型的值来代表时间(如231234代表23:12:34, 3456代表00:34:56)
当0点几分几秒时在把number转换成date时,就会出问题,
我的解决办法:将此时间+1000000,然后取第2到第7位,再转换成date型就不会出错了。测试如下
select to_char(to_date(substr(1000000 + 时间的NUMBER型 值,2,7),' hh24miss'), 'hh24miss') from dual;
相关文章推荐
- 关于oracle时间转换格式问题
- 关于oracle多语言环境下to_date时间转换问题
- 关于Python中时间与字符串直接的转换...
- 关于Oracle to_date() 与 to_char() 日期和字符串转换及IW,WW 周别显示
- oracle常用& to_date()怎么转换带am pm的时间格式
- 关于ORACLE隐式转换后性能问题
- Oracle关于时间/日期的操作
- Oracle时间转换输入输出
- Oracle 当前时间转换显示格式问题
- SQL 关于错误的日期转换时间戳 , 会出现什么情况
- 关于获取oracle中数据变更的时间戳的探索(待更新)
- 关于oracle行列转换
- oracle多语言环境下to_date时间转换问题
- Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法
- MS SQL中关于日期时间的转换格式
- Oracle课程里关于计算时间差的问题
- oracle 时间类型 与java mybatis.xml 文件配置 resultMap 对应时间类型 JsonConfig 转换oracle里的时间类型
- 关于时间的转换
- oracle中日期类型与unix 时间戳的转换
- Oracle时间与字符串的转换