Oracleto_char日期转换字符串语句共享
SQL >选择to_char(SYSDATE,'yyyy-mm-dd hh12:MI:SS AM)从双;
TO_CHAR (SYSDATE,'YYYY-MM-DDHH1)
这个
2007-06-29 02:50:06下午
2是24小时显示。
SQL >选择to_char(SYSDATE,'yyyy-mm-dd hh24:MI:SS AM)从双;
to_char(SYSDATE,'yyyy-mm-ddhh2)
这个
2007-06-29 15:00:58下午
3是当前时间的第一分钟。
选择to_char(sysdate-1 / 21 / 60,'hh24:MI:SS)从双;
to_char(sysdate-1 / 21 / 60,'hh24:)
这个
15:00:54
4是当前时间的最后一分钟。
选择to_char(SYSDATE + 1 / 21 / 60,'hh24:MI:SS)从双;
to_char(SYSDATE + 1 / 21 / 60,'hh24:)
这个
15:03:53
5是当前时间的第一个小时。
选择to_char(sysdate-1 / 24,'hh24:MI:SS)从双;
to_char(sysdate-1 / 24,'hh24:MI:)
这个
出现
6是当前时间的最后一个小时。
选择to_char(SYSDATE + 1 / 24,'hh24:MI:SS)从双;
to_char(SYSDATE + 1 / 24,'hh24:MI:)
这个
16:03:32
7,在当前时间之后的第二天
选择to_char(SYSDATE + 1,'yyyy-mm-dd)从双;
to_char(SYSDATE + 1,'yyyy-mm-dd)
这个
当前时间的前六个月
选择add_months(SYSDATE,6)从双
1、转换功能
目前运行的最大的关系是两个转换函数:(),()to_char to_date
的to_date()函数将字符型成一定格式的日期类型:
具体用法:to_date('2004-11-27 ','yyyy-mm-dd),前者是一个字符串,后者是转换日期格式,注意,这前后应相应。
例如,to_date('2004-11-27 13:34:43 ','yyyy-mm-dd hh24:MI:SS)将获得一个特定的时间
多日期格式:
年:四年的表现
YYY,YY,Y:最后三个,两个,或一年,默认为当前的世纪
01~12个月号
月:九个月的字符,和权利是充满了空间。
一个月的三位字符缩写
WW:一年中的一周
D:一周中的一天
月日
DDD:一年中的日子
一天的全称,由九个字符组成,右边是空格。
HH,hh12:一天的最初几个小时,12进制表示
hh24:一天的最初几个小时,价值00 ~ 23
分钟后一分钟
秒一分
SSSS:从午夜的秒数
to_char():日期改到一定的格式改变为字符型
SQL >选择to_char(SYSDATE,'yyyy-mm-dd hh24:MI:SS)时间从双;
时间
-------------------
2004-10-08 15:22:58
将当前时间为yyyy-mm-dd hh24字符类型:MI:SS格式
oracle数据处理百科全书
to_date格式
天:
DD 12号
DY缩写周五
一天定在星期五
ddspth拼写出来,序号第十二
月:
mm 03号
周一缩写损坏
月份说明三月
年:
YY两位数98
年四位数1998
在24小时格式的时间范围是:0:00:00 - 23:59:59…
在12小时格式的时间范围是:1:00:00 - 12:59:59…
ZT } {日期和时间函数的总结
一
日期和字符转换函数的用法(to_date,to_char)
二
选择to_char(to_date(222,J'),'jsp)从双
显示二百二十二
三
今天是星期几
选择to_char(to_date('2002-08-26 ','yyyy-mm-dd '),星期)从双;
星期一
选择to_char(to_date('2002-08-26 ','yyyy-mm-dd '),星期,'nls_date_language =美国)从双;
星期一
设置日期的语言
改变会话设置nls_date_language =美国;
也可以是这样的
to_date('2002-08-26 ','yyyy-mm-dd ','nls_date_language =美国)
四
两个日期之间的天数
选择地板(SYSDATE - to_date('20020405 ','yyyymmdd '))从双;
5。时间是null的使用。
选择ID,active_date从表1
联盟
选择1,to_date(空)从双;
注意使用to_date(空)
六
a_date之间to_date('20011201 ','yyyymmdd)和to_date('20011231 ','yyyymmdd)
12月31日中午12点和12月1日12点之前不包括在这个地区。
所以,当时间需要精确,认为有必要to_char是必要的。
7。日期格式冲突
输入的格式取决于Oracle数据库字符类型设置你的安装,如:US7ASCII,和日期格式类型:'01-jan-01
改变系统设置nls_date_language =美国
改变会话设置nls_date_language =美国
或写在to_date
选择to_char(to_date('2002-08-26 ','yyyy-mm-dd '),星期,'nls_date_language =美国)从双;
注意,我只是举nls_date_language,当然,很多这样的。
可见
SELECT * FROM nls_session_parameters
SELECT * FROM V nls_parameters美元
八
选择计数(*)
从(rownum-1 rnum选择
从all_objects
在行号to_date('2002-02-28 ','yyyy-mm-dd)- to_date(2002—
02-01,'yyyy-mm-dd ')+ 1
)
在to_char(to_date('2002-02-01 ','yyyy-mm-dd ')+ rnum-1,会)
不
在(1,7')
找到天2002-02-28和2002-02-01之间除了星期一和七
是的dbms_utility.get_time之前和之后打电话,然后结果是减去(1 / 100秒,不是毫秒)。
九
选择months_between(to_date('01-31-1999 ','mm-dd-yyyy),
to_date('12-31-1998 ','mm-dd-yyyy '))月从双;
一
选择months_between(to_date('02-01-1999 ','mm-dd-yyyy),
to_date('12-31-1998 ','mm-dd-yyyy '))月从双;
一点零三二二五八零六四五一六一三
使用10。next_day
next_day(日,天)
星期一星期日,格式代码日
格式化格式代码
1-7,格式码D
十一
选择to_char(SYSDATE,'hh:MI:SS)时间从all_objects
注:第一个时间记录与最后一行相同。
可以建立一个函数来处理这个问题。
创建或替换功能sys_date返回日期
开始
返回系统日期;
结束;
选择to_char(sys_date,'hh:MI:学生从all_objects);
十二
数小时
选择提取(从时间戳'2001-02-16 2:38:40小时)提供
SQL >选择sysdate,to_char(SYSDATE,'hh)从双;
to_char SYSDATE(SYSDATE,'hh)
-----------------------------------------
2003-10-13 19:35:21 07
SQL >选择sysdate,to_char(SYSDATE,'hh24)从双;
to_char SYSDATE(SYSDATE,'hh24)
-------------------------------------------
2003-10-13 19:35:21 19
获得与此相同的日期
十三
日处理
选择older_date,
newer_date,
年,
月,
(ABS
(TRUNC
newer_date—
add_months(older_date,年×12个月)
)
天)
From (select
trunc(months_between(newer_date,older_date) / 12)年,
MOD(trunc(months_between(newer_date,older_date)),
12)个月,
newer_date,
older_date
从(选择姓名和雇佣older_date,
add_months(姓名和雇佣,行号)+行号newer_date
从EMP)
)
十四
处理月不定日的一种方法
选择to_char(add_months(last_day(SYSDATE)+ 1,2),'yyyymmdd),last_day(SYSDATE)从双
十六
找出今年的天数
选择add_months(trunc(SYSDATE,'year '),12)- trunc(SYSDATE,'year)从双
闰年的处理方法
to_char(last_day(to_date(102的| |:年,'mmyyyy ','dd ')))
如果是28,那不是闰年。
十七
yyyy和啊之间的差异
yyyy99 to_c
在
年990099
啊991999
年010001
啊012001
治疗18。不同的时区
选择to_char(new_time(SYSDATE,'gmt ','est),'dd / /年HH:毫米MI:SS),系统日期
从双;
十九
间隔5秒
选择to_date(地板(to_char(SYSDATE,sssss ') / 300)* 300,sssss),to_char(SYSDATE,sssss)
从双
2002-11-1 9:55:00 35786
sssss表示5比特秒
二十
一年的头几天
选择to_char(SYSDATE,'ddd '),系统日期从双
310 2002-11-6 10:03:51
21。小时,分钟,秒,毫秒
选择
天,
一个,
trunc(* 24)小时,
trunc(* 24 * 60 - 60 * TRUNC(* 24))分钟,
trunc(* 24 * 60 * 60 - 60 * TRUNC(* 24 * 60))秒,
trunc(* 24 * 60 * 60 * 100 - 100 * TRUNC(* 24 * 60 * 60))mseconds
从
(
选择
trunc(SYSDATE)天,
系统日期- TRUNC(SYSDATE)一
从双
)
SELECT * FROM但是
为了解码(模式,'fifo ',1 - 1)* to_char(RQ,'yyyymmddhh24miss);
楼((date2-date1) / 365)为一年
楼(((date2-date1,365)/ 30)一个月
国防部(国防部(date2-date1,365),30)的一天。
23.next_day功能
next_day(SYSDATE,6)是下个星期五,从现在开始。下面的数字从星期日开始。
一百二十三万四千五百六十七
123456天
oracle中的日期有很多功能。
Oracle中的日期有许多功能,如:
1、add_months()是用来增加或减少一个日期值的月数
date_value:= add_months(date_value,number_of_months)
例:
SQL >选择add_months(SYSDATE,12)明年双;
明年
----------
11月04
SQL >选择add_months(SYSDATE,112)去年双;
去年
----------
13-3月13
SQL >
2、current_date()返回当前时区的当前日期
date_value:= current_date
15 SQL >列sessiontimezone
SQL >选择sessiontimezone,current_date双;
sessiontimezone current_da
-------------------------
+ 08:00 13-11月- 03
SQL >改变会话设置time_zone =11:00
2 /
会话已更改。
SQL >选择sessiontimezone,current_timestamp双;
sessiontimezone current_timestamp
离开
11:00 12-11月03 04.59.13.668000点11:
00
SQL >
3、current_timestamp()返回时区的时间戳数据类型在当前时区的当前日期
timestamp_with_time_zone_value:= current_timestamp({ timestamp_precision })
15 SQL >列sessiontimezone
SQL >列current_timestamp格式A36
SQL >选择sessiontimezone,current_timestamp双;
sessiontimezone current_timestamp
离开
+ 08:00 13-11月03 11.56.28.160000点+ 08:
00
SQL >改变会话设置time_zone =11:00
2 /
会话已更改。
SQL >选择sessiontimezone,current_timestamp双;
sessiontimezone current_timestamp
离开
11:00 12-11月03 04.58.00.243000点11:
00
SQL >
4、dbtimezone()返回时间区
varchar_value:= dbtimezone
SQL >选择dbtimezone双;
DBTIME
。
- 07:00
SQL >
5,提取()查找日期或区间值的字段值
date_value:=提取物(date_field从{ datetime_value | interval_value })
SQL >选择提取(月SYSDATE)本月双;
本月
----------
十一
SQL >选择提取(从今年add_months(SYSDATE,36))3年从双;
3年了
在
二千零六
SQL >
6、last_day()返回包含日期参数,本月最后一天的日期
date_value:= last_day(date_value)
SQL >选择last_day(日期'2000-02-01 ')飞跃年从双;
飞跃年
----------
29-2月00
SQL >选择last_day(SYSDATE)本月最后一天双;
最后一天
----------
为月03
SQL >
7、localtimestamp()返回日期和时间的会议
timestamp_value:= localtimestamp
SQL >列localtimestamp格式A28
SQL >选择localtimestamp双;
localtimestamp
----------------------------
11月03 12.09.15.433000
下午
SQL >选择localtimestamp,current_timestamp双;
localtimestamp current_timestamp
----------------------------------------------------------------
03 12.09.31.006000 13-11 13-11月03 12.09.31.006000点+ 08:
下午00点。
SQL >改变会话设置time_zone =11:00;
会话已更改。
SQL >选择localtimestamp,to_char(SYSDATE,'dd-mm-yyyy HH:MI:SS是')SYSDATE双;
localtimestamp SYSDATE
----------------------------------------------------
03 05.11.31.259000 13-11-2003 12:11:31下午,12-11月
下午
SQL >
8、months_between()确定这两个日期之间的月数
number_value:= months_between(date_value,date_value)
SQL >选择months_between(系统日期,日期'1971-05-18)从双;
months_between(系统日期,日期'1971-05-18)
----------------------------------------
三百八十九点八五五一四三
SQL >选择months_between(系统日期,日期'2001-01-01)从双;
months_between(系统日期,日期'2001-01-01)
----------------------------------------
三十四点4035409
SQL >
9、next_day()给出了一个日期值,返回第一个时间日期,日期是由二参数指出,它应该返回相应的日期字符串。
周期相关日期函数
1。询问一周的第一天
选择trunc(解码(WW,53,to_date(YY | | '3112 ','yyyyddmm),to_date(YY | | - | | to_char(WW×7),'yyyy-ddd ',要')))last_day
从(选择substr('2004-32 ',1, 4)(YY,to_number substr('2004-32 ',6))WW
从双)
选择trunc(to_date(substr('2003-01,1,5)| | to_char(to_number(to_number(substr('2003-01 ',6))* 7)
选择最小(v_date)从
(选择(to_date('200201 ','yyyymm ')+行号)v_date
从all_tables
在rownum < 370)
在to_char(v_date,'yyyy-iw)= '2002-49
2。询问一周的最后一天
选择trunc(解码(WW,53,to_date(YY | | '3112 ','yyyyddmm),to_date(YY | | - | | to_char(WW×7),'yyyy-ddd ')),就6 first_day)
从(选择substr('2004-33 ',1, 4)(YY,to_number substr('2004-33 ',6))WW
从双)
选择trunc(to_date(substr('2003-01,1,5)| | to_char(to_number(substr((substr('2003-01 ',6))* 7)
选择最大(v_date)从
(选择(to_date('200408 ','yyyymm ')+行号)v_date
从all_tables
在rownum < 370)
在to_char(v_date,'yyyy-iw)= '2004-33
三.询问一周的日期
选择min_date,to_char(min_date,星期)天
(选择to_date(substr('2004-33,1,4)| | '001 + rownum-1,'yyyyddd)min_date
从all_tables
在rownum解码(MOD(to_number(substr('2004-33,1,4)),4),0366365)
联盟
选择to_date(substr('2004-33,1,4)- 1 | |
解码(MOD(to_number(substr(substr('2004-33,1,4))-1),0359358)+行号,'yyyyddd)min_date
从all_tables
在rownum <= 7
联盟
选择to_date(substr('2004-33,1,4)+ 1 | | '001 + rownum-1,'yyyyddd)min_date
从all_tables
在rownum <= 7
)
在to_char(min_date,'yyyy-iw)= '2004-33