sql to_char 日期转换字符串
oracle将一串数字转换为字符串的函数

oracle将一串数字转换为字符串的函数Oracle是一种常用的关系型数据库管理系统,它提供了丰富的函数和工具来处理数据。
其中一个常用的函数是将一串数字转换为字符串的函数。
在本文中,我们将介绍如何使用Oracle中的函数来实现这个功能。
在Oracle中,可以使用TO_CHAR函数将数字转换为字符串。
TO_CHAR函数的语法如下:TO_CHAR(number, [format], [nlsparam])其中,number是要转换的数字,format是可选的格式化字符串,nlsparam是可选的国家语言设置参数。
首先,我们来看一个简单的例子。
假设我们有一个数字列num,其中包含了一些整数值。
我们想要将这些整数值转换为字符串,并将其存储在一个新的列str中。
我们可以使用如下的SQL语句来实现:```UPDATE table_nameSET str = TO_CHAR(num)```在这个例子中,我们使用了TO_CHAR函数将num列中的每个整数值转换为字符串,并将其存储在str列中。
通过执行这个UPDATE语句,我们可以将数字转换为字符串并更新表中的数据。
除了简单的转换,TO_CHAR函数还可以使用格式化字符串来控制转换的结果。
例如,我们可以使用格式化字符串来指定转换后字符串的长度、小数位数、千位分隔符等。
下面是一些常用的格式化字符串的示例:- 'FM9999':将数字转换为至少4位的字符串,不包含千位分隔符。
- 'FM9999.99':将数字转换为至少4位整数和2位小数的字符串,不包含千位分隔符。
- 'FM9,999':将数字转换为至少4位的字符串,包含千位分隔符。
例如,我们可以使用如下的SQL语句将一个数字列num转换为至少4位整数和2位小数的字符串,并将其存储在str列中:```UPDATE table_nameSET str = TO_CHAR(num, 'FM9999.99')```通过执行这个UPDATE语句,我们可以将数字转换为指定格式的字符串并更新表中的数据。
sap select 标准函数

sap select 标准函数SAP SELECT 是 SAP ABAP (Advanced Business Application Programming) 语言中的一个SQL 查询工具,用于从数据库表中选择数据。
在SAP SELECT语句中,可以使用各种标准函数来修改或操作从数据库表中检索的数据。
以下是一些常用的标准函数:1. 字符串函数:`TRIM`:删除字符串前后的空格。
`LENGTH`:返回字符串的长度。
`UPPER`:将字符串转换为大写。
`LOWER`:将字符串转换为小写。
`INITCAP`:将字符串的每个单词的首字母转换为大写。
2. 数值函数:`ROUND`:四舍五入数值。
`TRUNC`:截断数值。
`CEIL`:向上取整。
`FLOOR`:向下取整。
3. 日期函数:`TO_DATE`:将字符串转换为日期。
`TO_CHAR`:将日期转换为字符串。
`ADD_DAYS`:给日期添加天数。
`SUBTRACT_DAYS`:从日期减去天数。
4. 转换函数:`CAST`:将一个数据类型的值转换为另一个数据类型。
5. 聚合函数:`SUM`:计算数值列的总和。
`AVG`:计算数值列的平均值。
`MIN`:返回列中的最小值。
`MAX`:返回列中的最大值。
6. 其他常用函数:`CASE`:根据条件返回不同的值。
`IF`:条件判断。
`COALESCE`:返回参数列表中的第一个非NULL值。
7. 位置函数:用于字符串操作,例如查找子字符串在主字符串中的位置等。
8. 逻辑函数:如 `IS_NULL`, `NVL`, `COALESCE`, `GREATEST`, `LEAST` 等,这些函数提供了处理空值和比较不同数据类型的值的逻辑方法。
9. 其他:还有许多其他函数,根据具体需求和数据类型而定,可以在SAP ABAP的文档中查找完整的函数列表和描述。
使用这些函数,可以在SAP SELECT语句中更灵活地处理和操作从数据库表中检索的数据。
postgre sql常用函数

postgre sql常用函数
在PostgreSQL中常用的函数有以下几种:
1. 聚合函数:用于对数据进行分组计算,常见的聚合函数有SUM、AVG、COUNT、MIN、MAX等。
2. 数学函数:用于进行数学运算,常见的数学函数有ABS(取绝对值)、ROUND(四舍五入)、CEIL(向上取整)、FLOOR(向下取整)等。
3. 字符串函数:用于对字符串进行操作,常见的字符串函数有CONCAT(拼接字符串)、SUBSTRING(截取子串)、LENGTH(计算字符串长度)等。
4. 日期函数:用于处理日期和时间数据,常见的日期函数有NOW (获取当前时间)、DATE_PART(提取日期部分)、DATE_TRUNC(截断日期部分)等。
5. 条件函数:用于根据条件进行计算,常见的条件函数有CASE WHEN(条件判断)、COALESCE(返回第一个非空值)等。
6. 转换函数:用于进行数据类型的转换,常见的转换函数有CAST (将数据类型转换为指定类型)、TO_CHAR(将日期转换为字符串)等。
7. 窗口函数:用于在查询结果中进行窗口操作,常见的窗口函数有ROW_NUMBER(返回行号)、RANK(返回排名)等。
这些是PostgreSQL中常用的函数,根据具体的业务需求,还可以使用更多的函数进行数据处理和计算。
OracleSQL日期及日期格式获取命令

OracleSQL⽇期及⽇期格式获取命令⽇期及⽇期格式:获取⽇期:sysdate()格式化⽇期to_char(sysdate(),'yyyy-mm-dd,hh24:mi:ss')to_date(sysdate(),'yyyy-mm-dd,hh24:mi:ss')注:to_char 把⽇期或数字转换为字符串to_char(number, '格式')to_char(salary, '$99,999.99')to_char(date, '格式')to_date 把字符串转换为中的⽇期类型to_date(char, '格式')转换格式:表⽰ year 的:y 表⽰年的最后⼀位yy 表⽰年的最后2位yyy 表⽰年的最后3位yyyy ⽤4位数表⽰年表⽰ month 的:mm ⽤2位数字表⽰⽉mon ⽤简写形式,⽐如11⽉或者novmonth ⽤全称,⽐如11⽉或者november表⽰ day 的:dd 表⽰当⽉第⼏天ddd 表⽰当年第⼏天dy 当周第⼏天,简写,⽐如星期五或者friday 当周第⼏天,全称,⽐如星期五或者friday表⽰ hour 的:hh 2位数表⽰⼩时 12进制hh24 2位数表⽰⼩时 24⼩时表⽰minute的:mi 2位数表⽰分钟表⽰second的:ss 2位数表⽰秒 60进制表⽰季度的:q ⼀位数表⽰季度(1-4)另外还有ww ⽤来表⽰当年第⼏周 w⽤来表⽰当⽉第⼏周。
24⼩时制下的时间范围:00:00:00-23:59:5912⼩时制下的时间范围:1:00:00-12:59:59例⼦:返回系统⽇期: 2018/1/19 22:44:54select sysdate from dual;格式化: 2018-01-19 22:46:59select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual获取昨天:2018/1/18select trunc(sysdate-1) from dual;获取上个⽉第⼀天:2017/12/1select add_months(trunc(sysdate,'MON'),-1) from dualselect add_months(trunc(sysdate,'MON'),-13) from dual获得本季度第⼀天:2018/1/1select trunc(add_months(sysdate,0),'Q') from dual获得上季度第⼀天:2017/10/1select trunc(add_months(sysdate,-3),'Q') from dual补充当前时间减去7分钟的时间select sysdate,sysdate - interval '7' MINUTE from dual;当前时间减去7⼩时的时间select sysdate - interval '7' hour from dual;当前时间减去7天的时间select sysdate - interval '7'day from dual;当前时间减去7⽉的时间select sysdate,sysdate - interval '7'month from dual;当前时间减去7年的时间select sysdate,sysdate - interval '7'year from dual;时间间隔乘以⼀个数字select sysdate,sysdate -8*interval '7' hour from dual;Oracle 常⽤的时间函数Sysdate :当前⽇期和时间SQL>Select sysdate from dual;2018/1/1923:15:20Last_day :本⽉最后⼀天SQL>Select last_day(sysdate) from dual;2018/1/3123:16:24Add_months(d,n) :当前⽇期d后推n个⽉,⽤于从⼀个⽇期值增加或减少⼀些⽉份SQL>Select add_months(sysdate,2) from dual;2018/3/1923:18:29Months_between(f,s) :⽇期f和s间相差⽉数SQL>select months_between(sysdate,to_date('2017-8-1','yyyy-mm-dd'))from dual;5.6120034348865NEXTDAY(d, dayofweek) :返回由"dayofweek"命名的,在变量"d"指定的⽇期之后的第⼀个⼯作⽇的⽇期。
sql日期时间格式转换字符串简介

在sql server数据库中,sql server日期时间格式转换字符串可以改变sql server日期和时间的格式,是每个SQL数据库用户都应该掌握的。
日期时间转字符串:1.Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM2.Select CONVERT(varchar(100), GETDATE(), 1): 05/16/063.Select CONVERT(varchar(100), GETDATE(), 2): 06.05.164.Select CONVERT(varchar(100), GETDATE(), 3): 16/05/065.Select CONVERT(varchar(100), GETDATE(), 4): 16.05.066.Select CONVERT(varchar(100), GETDATE(), 5): 16-05-067.Select CONVERT(varchar(100), GETDATE(), 6): 16 05 068.Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 069.Select CONVERT(varchar(100), GETDATE(), 8): 10:57:4610.Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM11.Select CONVERT(varchar(100), GETDATE(), 10): 05-16-0612.Select CONVERT(varchar(100), GETDATE(), 11): 06/05/1613.Select CONVERT(varchar(100), GETDATE(), 12): 06051614.Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:93715.Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:96716.Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:4717.Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.15718.Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM19.Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-1620.Select CONVERT(varchar(100), GETDATE(), 24): 10:57:4721.Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.25022.Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM23.Select CONVERT(varchar(100), GETDATE(), 101): 05/16/200624.Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.1625.Select CONVERT(varchar(100), GETDATE(), 103): 16/05/200626.Select CONVERT(varchar(100), GETDATE(), 104): 16.05.200627.Select CONVERT(varchar(100), GETDATE(), 105): 16-05-200628.Select CONVERT(varchar(100), GETDATE(), 106): 16 05 200629.Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 200630.Select CONVERT(varchar(100), GETDATE(), 108): 10:57:4931.Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM32.Select CONVERT(varchar(100), GETDATE(), 110): 05-16-200633.Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/1634.Select CONVERT(varchar(100), GETDATE(), 112): 2006051635.Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:51336.Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:54737.Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:4938.Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.70039.Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.82740.Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ??????1427 10:57:49:907AM。
sql常用格式化函数及字符串函数

sql常⽤格式化函数及字符串函数⼀.常⽤格式化函数1.⽇期转字符串mysql:date_format()函数select date_format(now(), '%Y-%m-%d %H:%i:%s');%Y:年份%m:⽉份号(01-12)%d:⼀个⽉⾥的⽇(01-31)pg:to_char()函数select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS');YYYY:年份MM:⽉份号(01-12)DD:⼀个⽉⾥的⽇(01-31)HH24:⼀天的⼩时数(00-23)MI:分钟(00-59)SS:秒(00-59)格式化格式可以由以上英⽂字母任意搭配,如可以是'YYYY-MM-DD HH24:MI:SS',也可以是'YYYY-MM-DD',也可以是'YYYYMMDD'。
2.字符串转⽇期mysql:str_to_date()函数select str_to_date('2017-09-18', '%Y-%m-%d %H:%i:%s');select str_to_date('2017-09-18 12:08:35', '%Y-%m-%d %H:%i:%s');pg:select to_date('2017-09-18','YYYY-MM-DD');select to_timestamp('2017-09-18 22:41:50','YYYY-MM-DD HH24:MI:SS');待解析的字符串可以包含时分秒,也可以不包含时分秒。
解析格式同样可以任意指定。
to_date只会取到⽇期,不会取到时分秒,时间是该⽇的0点0分0秒,⽽不管待解析的字符串中时分秒是什么。
sql数字类型转换为字符串类型的方法

SQL数字类型转换为字符串类型的方法主要是通过SQL中的内置函数来实现的。
在数据库查询中,有时候我们需要将数字类型的数据转换为字符串类型,比如将数字型的ID转换为字符串类型的ID,或者将数字型的金额字段转换为带有千位分隔符的字符串类型。
下面我们将介绍几种常用的方法来实现这种类型的转换。
1. 使用CAST或CONVERT函数在SQL中,可以使用CAST或CONVERT函数来将数字类型转换为字符串类型。
这两个函数的语法类似,例如:```SELECT CAST(123 as VARCHAR(10))```或者```SELECT CONVERT(VARCHAR, 123)```这样就可以将数字123转换为字符串类型的"123"。
2. 使用字符串拼接符号另一种常见的方法是使用字符串拼接符号,将数字类型的字段直接与空字符串相加,这样也可以将数字转换为字符串,例如:```SELECT 123 + ''这样同样可以将数字123转换为字符串类型的"123"。
3. 使用TO_CHAR函数(针对Oracle数据库)如果是在Oracle数据库中进行数字类型到字符串类型的转换,可以使用TO_CHAR函数,例如:```SELECT TO_CHAR(123)```4. 使用CONCAT函数在一些数据库中,还可以使用CONCAT函数来将数字类型转换为字符串类型,例如:```SELECT CONCAT(123)```5. 附加格式化参数在一些情况下,我们需要对转换后的字符串进行格式化,比如保留小数位数或添加千位分隔符。
这时候可以在上述函数中加入参数来实现格式化,例如:```SELECT FORMAT(123, 'N2')这样可以将数字123转换为带有两位小数的格式化后的字符串。
在实际的开发中,根据具体的数据库类型和需求,我们可以选择合适的方法来将数字类型转换为字符串类型。
SQLServer中日期与字符串之间的互相转换及日期格式

SQLServer中⽇期与字符串之间的互相转换及⽇期格式近期项⽬⽤到了很多⽇期转换为字符串、字符串转换为⽇期的⽅法,⽽且也⽤到了很多⽇期格式,特整理如下,以备后⽤。
1、⽇期转换为字符串、⽇期格式使⽤函数CONVERT:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )参数expression是任何有效的 Microsoft?nbsp;? 表达式。
data_type⽬标所提供的数据类型,包括 bigint 和 sql_variant。
不能使⽤⽤户定义的数据类型。
lengthnchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
style⽇期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
⽤例:Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AMSelect CONVERT(varchar(100), GETDATE(), 10): 05-16-06Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16Select CONVERT(varchar(100), GETDATE(), 12): 060516Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AMSelect CONVERT(varchar(100), GETDATE(), 23): 2006-05-16Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 101): 05/16/2006Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AMSelect CONVERT(varchar(100), GETDATE(), 110): 05-16-2006Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16Select CONVERT(varchar(100), GETDATE(), 112): 20060516Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AMSelect CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM2、字符串转换为⽇期使⽤ CAST:CAST ( expression AS data_type )使⽤ CONVERT:CONVERT (data_type[(length)], expression [, style])参数expression是任何有效的 Microsoft?nbsp;SQL Server? 表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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~23MI:一小时中的分钟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 12dy abbreviated friday spelled out fridayddspth spelled out, ordinal twelfthMonth:mm number 03mon abbreviated marmonth spelled out marchYear:yy two digits 98yyyy four digits 199824小时格式下时间范围为: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-Two3.求某天是星期几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 table1UNIONselect 1, TO_DATE(null) from dual;注意要用TO_DA TE(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 = Americanalter session set NLS_DATE_LANGUAGE = American或者在to_date中写select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,可查看select * from nls_session_parametersselect * from V$NLS_PARAMETERS8.select count(*)from ( select rownum-1 rnumfrom all_objectswhere 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' )notin ( '1', '7' )查找2002-02-28至2002-02-01间除星期一和七的天数在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).9.select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;1select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;1.0322580645161310. Next_day的用法Next_day(date, day)Monday-Sunday, for format code DAYMon-Sun, for format code DY1-7, for format code D11select to_char(sysdate,'hh:mi:ss') TIME from all_objects注意:第一条记录的TIME 与最后一行是一样的可以建立一个函数来处理这个问题create or replace function sys_date return date isbeginreturn sysdate;end;select to_char(sys_date,'hh:mi:ss') from all_objects;12.获得小时数SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer SQL> select sysdate ,to_char(sysdate,'hh') from dual;SYSDATE TO_CHAR(SYSDATE,'HH')-------------------- ---------------------2003-10-13 19:35:21 07SQL> select sysdate ,to_char(sysdate,'hh24') from dual;SYSDATE TO_CHAR(SYSDATE,'HH24')-------------------- -----------------------2003-10-13 19:35:21 19获取年月日与此类似13.年月日的处理select older_date,newer_date,years,months,abs(trunc(newer_date-add_months( older_date,years*12+months ))) daysfrom ( selecttrunc(months_between( newer_date, older_date )/12) YEARS,mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS,newer_date,older_datefrom ( select hiredate older_date,add_months(hiredate,rownum)+rownum newer_datefrom emp ))14.处理月份天数不定的办法select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual16.找出今年的天数select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual闰年的处理方法to_char( last_day( to_date('02' || :year,'mmyyyy') ), 'dd' )如果是28就不是闰年17.yyyy与rrrr的区别'YYYY99 TO_C------- ----yyyy 99 0099rrrr 99 1999yyyy 01 0001rrrr 01 200118.不同时区的处理select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdatefrom dual;19.5秒钟一个间隔Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS') from dual2002-11-1 9:55:00 35786SSSSS表示5位秒数20.一年的第几天select TO_CHAR(SYSDATE,'DDD'),sysdate from dual310 2002-11-6 10:03:5121.计算小时,分,秒,毫秒selectDays,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)) mSecondsfrom(selecttrunc(sysdate) Days,sysdate - trunc(sysdate) Afrom dual)select * from tabnameorder by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');//floor((date2-date1) /365) 作为年floor((date2-date1, 365) /30) 作为月mod(mod(date2-date1, 365), 30)作为日.23.next_day函数next_day(sysdate,6)是从当前开始下一个星期五。