Oracle数据库之SQL单行函数---to_date to_char
2013-04-05 20:47
459 查看
上文中提到了to_date函数,并且对其也有相关的使用操作。这篇文章就to_date和to_char做
一些总结。
日期显示格式
首先看看其对于日期显示的格式问题我们直接以一个实例为例("2013/4/5 19:35:35")
Year:
yy:表示显示两位年 显示13
yyy:显示三位年 显示013
yyyy:显示四位年 显示2013
Month
mm:表示两位月 显示04
mon:字符集表示 显示APR(英文缩写)
month:字符集表示 显示APRIL(英文全写)
Day
dd number类型 当月第几天 显示05
ddd number类型 当年第几天 显示095
dy :字符集 当周第几天简写 显示fri,中文版为星期五
day :字符集 当周第几天全写 显示friday,中文版为星期五
ddspth:字符集 当周第几天全写 显示为fifth
Hour
hh : 两个数字 12小时进制 显示07
hh24: 两个数字 24小时进制 显示19
Minute
mi : 两个数字 60进制 显示35
second
ss : 两个数字 60进制 显示35
Q:显示季度 显示为2
WW :当年第几周 显示为14
W: 当月第几周 显示1
以上基本将日期的格式说完了,肯定会存在遗漏,遇到之后再慢慢完善!
至于其具体用法,直接给出一些实例,在实战中学习
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') AS nowTime from dual;
--获取日期的年,至于月、日等就不演示了
select to_char(SYSDATE,'yyyy') as nowYear FROM dual;
--将字符查转换为日期
select TO_DATE('2012/04/25 09:24:25','yyyy/mm/dd hh:mi:ss') from dual; 2、求某天是星期几
3、设置会话语言
select floor(sysdate- to_date('2002-08-26', 'YYYY-mm-dd')) FROM DUAL; 5、时间为null的使用
select to_date(NULL) from dual; 6、是否在一个时间段中
10、处理月份天数不定的方法
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),
last_day(sysdate) from dual; 11、找出今年的天数
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual 12、计算小时、分、毫秒
select
Days,
A,
TRUNC(A*24) Hours,
TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,
TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,
TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds
from
(
select
trunc(sysdate) Days,
sysdate - trunc(sysdate) A
from dual
) ;
ok!练习就到这里吧!
一些总结。
日期显示格式
首先看看其对于日期显示的格式问题我们直接以一个实例为例("2013/4/5 19:35:35")Year:
yy:表示显示两位年 显示13
yyy:显示三位年 显示013
yyyy:显示四位年 显示2013
Month
mm:表示两位月 显示04
mon:字符集表示 显示APR(英文缩写)
month:字符集表示 显示APRIL(英文全写)
Day
dd number类型 当月第几天 显示05
ddd number类型 当年第几天 显示095
dy :字符集 当周第几天简写 显示fri,中文版为星期五
day :字符集 当周第几天全写 显示friday,中文版为星期五
ddspth:字符集 当周第几天全写 显示为fifth
Hour
hh : 两个数字 12小时进制 显示07
hh24: 两个数字 24小时进制 显示19
Minute
mi : 两个数字 60进制 显示35
second
ss : 两个数字 60进制 显示35
Q:显示季度 显示为2
WW :当年第几周 显示为14
W: 当月第几周 显示1
以上基本将日期的格式说完了,肯定会存在遗漏,遇到之后再慢慢完善!
TO_DATE()
to_date是将字符串或者数字转换为日期TO_CHAR()
to_char是将日期按照指定的格式转换为字符串至于其具体用法,直接给出一些实例,在实战中学习
例子:
1、to_date to_char用法 --日期格式转换为字符串select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') AS nowTime from dual;
--获取日期的年,至于月、日等就不演示了
select to_char(SYSDATE,'yyyy') as nowYear FROM dual;
--将字符查转换为日期
select TO_DATE('2012/04/25 09:24:25','yyyy/mm/dd hh:mi:ss') from dual; 2、求某天是星期几
select to_char(to_date('2012-04-05 09:24','yyyy-mm-dd hh:mi:ss'),'day') from dual;
3、设置会话语言
select TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American') from dual;4、计算两个日期之间的天数
select floor(sysdate- to_date('2002-08-26', 'YYYY-mm-dd')) FROM DUAL; 5、时间为null的使用
select to_date(NULL) from dual; 6、是否在一个时间段中
select *from emp where hiredate between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd');7、查找2002-02-28至2002-02-01间除星期一和七的天数
select count(*) from ( select rownum-1 rnum from all_objects where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002- 02-01','yyyy-mm-dd')+1 ) where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' ) not in ( '1', '7' );8、计算一段时间的月份数
select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1996', 'MM-DD-YYYY')) "MONTHS" FROM DUAL;9、年月日的处理
select older_date, newer_date, years, months, abs( trunc( newer_date- add_months( older_date,years*12+months ) ) ) days from ( select trunc(months_between( newer_date, older_date )/12) YEARS, mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS, newer_date, older_date from ( select hiredate older_date, add_months(hiredate,rownum)+rownum newer_date from emp ) );
10、处理月份天数不定的方法
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),
last_day(sysdate) from dual; 11、找出今年的天数
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual 12、计算小时、分、毫秒
select
Days,
A,
TRUNC(A*24) Hours,
TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,
TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,
TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds
from
(
select
trunc(sysdate) Days,
sysdate - trunc(sysdate) A
from dual
) ;
ok!练习就到这里吧!
相关文章推荐
- Oracle数据库之SQL单行函数---to_date to_char
- Oracle数据库中to_char()函数和to_date()函数的用法
- 【Sql】mysql类似to_char()to_date()函数mysql日期和字符相互转换方法date_f
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
- Oracle中的时间函数用法(to_date、to_char) (总结)
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
- PL/SQL函数学习笔记:trim和to_char的应用
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理 总结
- Oracle数据库之SQL单行函数---字符函数之TRIM
- SQL语句 TO_CHAR与TO_DATE
- Mysql中to_char()和str_to_date()函数
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
- Oracle中的to_date()函数 与 to_char()函数
- Oracle数据库之SQL单行函数---字符函数之TRIM
- Oracle格式化函数 to_char,to_date,to_number
- Oracle数据库之SQL单行函数---日期函数集锦
- Oracle 中的 TO_DATE 和 TO_CHAR 函数
- oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]
- PL/SQL的TO_CHAR()与TO_DATE()