1、转换函数
与date操作关系最大的就是两个转换函数:to_date(),to_char()
to_date() 作用将字符类型按一定格式转化为日期类型:
具体用法:to_date(''''2004-11-27'''',''''yyyy-mm-dd''''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。
如;to_date(''''2004-11-27 13:34:43'''', ''''yyyy-mm-dd hh24:mi:ss'''') 将得到具体的时间
多种日期格式:
YYYY:四位表示的年份
YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪
MM:01~12的月份编号
MONTH:九个字符表示的月份,右边用空格填补
MON:三位字符的月份缩写
WW:一年中的星期
D:星期中的第几天
DD:月份中的第几天
DDD:年所中的第几天
DAY:九个字符表示的天的全称,右边用空格补齐
HH,HH12:一天中的第几个小时,12进制表示法
HH24:一天中的第几个小时,取值为00~23
MI:一小时中的分钟
SS:一分钟中的秒
SSSS:从午夜开始过去的秒数
to_char():将日期转按一定格式换成字符类型
SQL> select to_char(sysdate,''''yyyy-mm-dd hh24:mi:ss'''') time from dual;
TIME
-------------------
2004-10-08 15:22:58
即把当前时间按yyyy-mm-dd hh24:mi:ss格式转换成字符类型
在oracle中处理日期大全
TO_DATE格式
Day:
dd number 12
dy abbreviated fri
day spelled out friday
ddspth spelled out, ordinal twelfth
Month:
mm number 03
mon abbreviated mar
month spelled out march
Year:
yy two digits 98
yyyy four digits 1998
24小时格式下时间范围为: 0:00:00 - 23:59:59.
12小时格式下时间范围为: 1:00:00 - 12:59:59 .
[ZT]日期和??函???
1.
日期和字符转换函数用法(to_date,to_char)
2.
select to_char( to_date(222,''''J''''),''''Jsp'''') from dual
显示Two Hundred Twenty-Two
3.
求某天是星期几
select to_char(to_date(''''2002-08-26'''',''''yyyy-mm-dd''''),''''day'''') from dual;
星期一
select to_char(to_date(''''2002-08-26'''',''''yyyy-mm-dd''''),''''day'''',''''NLS_DATE_LANGUAGE = American'''') from dual;
monday
设置日期语言
ALTER SESSION SET NLS_DATE_LANGUAGE=''''AMERICAN'''';
也可以这样
TO_DATE (''''2002-08-26'''', ''''YYYY-mm-dd'''', ''''NLS_DATE_LANGUAGE = American'''')
4.
两个日期间的天数
select floor(sysdate - to_date(''''20020405'''',''''yyyymmdd'''')) from dual;
5. 时间为null的用法
select id, active_date from table1
UNION
select 1, TO_DATE(null) from dual;
注意要用TO_DATE(null)
6.
a_date between to_date(''''20011201'''',''''yyyymmdd'''') and to_date(''''20011231'''',''''yyyymmdd'''')
那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
所以,当时间需要精确的时候,觉得to_char还是必要的
7. 日期格式冲突
问题 输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: ''''01-Jan-01''''
alter system set NLS_DATE_LANGUAGE = American