Oracle 获取系统日期,日期转换函数

合集下载

Oracle 获取当前日期及日期格式

Oracle 获取当前日期及日期格式
mi是分钟,输出 2009-12-25 14:23:31
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
mm会显示月份,输出 2009-12-25 14:12:31
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;
yy 表示年的最后2位 、
yyy 表示年的最后3位 、
yyyy 用4位数表示年
表示month的: mm 用2位数字表示月 、
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;
dy 当周第几天,简写, 比如星期五或者fri 、
day 当周第几天,全称, 比如星期五或者friday
表示hour的:hh 2位数表示小时 12进制 、
hh24 2位数表示小时 24小时
时间间隔乘以一个数字
select sysdate,sysdate - 8*interval '7' hour from dual;
含义解释:
Dual伪列
Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中。

ORACLE常用函数汇总

ORACLE常用函数汇总

ORACLE常用函数汇总Oracle是一种常用的关系型数据库管理系统,它提供了许多方便的函数来处理和操作数据。

以下是一些常用的Oracle函数的汇总:1.字符串函数:-CONCAT:用于连接两个字符串。

-UPPER:将字符串转换为大写。

-LOWER:将字符串转换为小写。

-LENGTH:返回字符串的长度。

-SUBSTR:返回字符串的子串。

2.数值函数:-ABS:返回数字的绝对值。

-ROUND:返回一个四舍五入的数字。

-TRUNC:返回数字的整数部分。

-MOD:返回两个数的余数。

3.日期函数:-SYSDATE:返回当前日期和时间。

-TO_CHAR:将日期转换为特定的格式。

-TO_DATE:将字符串转换为日期。

-ADD_MONTHS:在给定的日期上添加指定的月份。

-MONTHS_BETWEEN:返回两个日期之间的月份数。

4.聚合函数:-SUM:计算指定列的总和。

-AVG:计算指定列的平均值。

-COUNT:计算指定列的行数。

-MAX:返回指定列的最大值。

-MIN:返回指定列的最小值。

5.条件函数:-NVL:用于将空值替换为指定的值。

-NULLIF:如果两个表达式相等,则返回空值;否则返回第一个表达式的值。

-COALESCE:返回第一个非空表达式的值。

-CASE:对满足条件的表达式进行分支处理。

6.集合函数:-UNION:将两个结果集合并成一个结果集。

-INTERSECT:返回两个结果集的交集。

-MINUS:返回第一个结果集中不在第二个结果集中的行。

7.窗口函数:-ROW_NUMBER:为查询结果中的每一行分配一个唯一的行号。

-RANK:根据指定的列对结果进行排序,并为相同值的行分配相同的排名。

-DENSE_RANK:根据指定的列对结果进行排序,并为相同值的行分配连续的排名。

8.系统函数:-USER:返回当前用户的名称。

-CURRENT_TIMESTAMP:返回当前的日期和时间。

-SYSTIMESTAMP:返回当前的日期和时间,包括时区信息。

Oracle中时间和日期函数总结

Oracle中时间和日期函数总结

Oracle中时间和⽇期函数总结查看当前⽇期格式:select*from nls_session_parameters where parameter='NLS_DATE_FORMAT';修改⽇期的格式: alter session set nls_date_format ='yyyy-mm-dd';永久设置⽇期格式:改注册表oracle/HOME0 加字符串NLS_DATE_FORMAT 值yyyy-mm-dd;1.dd-mon-yy转换为yyyy-mm-ddselect to_char(to_date('01-5⽉-05','dd-mon-yy'),'yyyy-mm-dd') from dual2.计算2009-05-01与2008-04-30的⽉份差select (extract(year from to_date('2009-05-01 ','yyyy-mm-dd')) - extract(year from to_date('2008-04-30','yyyy-mm-dd'))) *12+extract(month from to_date('2008-05-01','yyyy-mm-dd')) - extract(month from to_date('2008-04-30','yyyy-mm-dd')) months from dual; --extract:⽤于从⽇期时间值中取得所需要的特定数据 year.month.day.hour.minute.secondselect ceil((to_date('2009-05-01','yyyy-mm-dd') - to_date('2008-04-30','yyyy-mm-dd'))/30) from dual;select ceil(months_between(to_date('2009-05-01','yyyy-mm-dd'),to_date('2008-04-30','yyyy-mm-dd'))) from dual;--查看现在距2008-08-08已过去了多少个⽉select ceil(months_between(sysdate,to_date('2008-08-08','yyyy-mm-dd'))) from dual;3.年⽉⽇时分秒计算select to_date('2010-04-27 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual; --字符串转换成⽇期select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; --⽇期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; --获取时间的年 'yyyy.yyy.yy.y'分别显⽰不同年的计数位--获取时间的⽉select to_char(sysdate,'mm') from dual; -- 04select to_char(sysdate,'mon') from dual; --中⽂版:4⽉英⽂版: aprselect to_char(sysdate,'month') from dual; --中⽂版:4⽉英⽂版: april--获取时间的⽇select to_char(sysdate,'dd') from dual; --当⽉的第⼏天select to_char(sysdate,'ddd') from dual; --当年的第⼏天select to_char(sysdate,'d') from dual; --当周的第⼏天 select to_char(sysdate,'D') from dual;select to_char(sysdate,'ddspth')from dual; --英⽂显⽰当⽉的第⼏天--获取时间的时select to_char(sysdate,'hh24') from dual; --24⼩时制select to_char(sysdate,'hh') from dual; --12⼩时制--获取时间的分select to_char(sysdate,'mi') from dual;--获取时间的秒select to_char(sysdate,'ss') from dual;4.查看星期⼏select to_char(sysdate,'dy') from dual; --星期⼏中⽂版:星期⼆英⽂版:Tueselect to_char(sysdate,'day') from dual; --星期⼏中⽂版:星期⼆英⽂版:Tuesday--英⽂显⽰星期⼏: to_date('2010-04-27','yyyy-mm-dd') 部分可换成sysdate或其他时间select to_char(to_date('2010-04-27','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; --⼩写select to_char(to_date('2010-04-27','yyyy-mm-dd'),'DAY','NLS_DATE_LANGUAGE = American') from dual; --⼤写select to_char(to_date('2010-04-27','yyyy-mm-dd'),'Day','NLS_DATE_LANGUAGE = American') from dual; --⾸字母⼤写--设置会话⽇期语⾔格式 : alter session set nls_date_language='american';5. next_day函数:计算机当前⽇期的下⼀个星期⼏next_day(sysdate,6)是从当前开始下⼀个星期五(n-1)。

oracle date函数用法

oracle date函数用法

oracle date函数用法Oracle DATE函数是用于将一个字符串转换为日期格式的函数。

它有多种用法,以下是其中的几种:1. TO_DATE函数:将字符串转换为日期格式TO_DATE函数的语法如下:TO_DATE(string, format)其中,string是要转换的字符串,format是转换格式,它告诉Oracle如何将字符串转换为日期格式。

例如,如果字符串是'2022-01-01',format应该是'YYYY-MM-DD'。

示例:SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') FROM DUAL;结果为:01-JAN-222. SYSDATE函数:返回当前日期和时间SYSDATE函数用于获取当前日期和时间。

它没有任何参数。

示例:SELECT SYSDATE FROM DUAL;结果为:21-JUL-21 02.14.45.000000 PM3. ADD_MONTHS函数:将月份加上指定的数量ADD_MONTHS函数用于将一个日期的月份加上指定的数量。

它的语法如下:ADD_MONTHS(date, n)其中,date是要处理的日期,n是要加上的月份数量。

示例:SELECT ADD_MONTHS(TO_DATE('2022-01-01', 'YYYY-MM-DD'), 6) FROM DUAL;结果为:01-JUL-22以上是Oracle DATE函数的常用用法,它们可以帮助您处理日期和时间相关的计算和操作。

Oracle常用函数

Oracle常用函数

句中必须要有from命令,所以oracle定义了虚拟表dual,提供一些特殊字段的查询,例如时间日期、算术运算等功能。

select sysdate from dual; selecr 1+2 from dual;*/一、时间类常用函数:①、sysdate--获取当前系统时间②、To_char(date,format) -将日期转换为字符串参数:Date:日期format:转换的格式例:select to_char(sysdate,'yyyy-mm-dd')from dual;输出:2022-4-8 --这里输出的是字符串!③、To_date(string,format) -将字符串转换为日期参数:string:日期格式的字符串format:转换的格式*需要转换为日期的字符串必须要和指定转换的格式匹配!换句话说string是根据format的格式来进行转换。

例:select to_date('2022-02-12 23:15:12','yyyy-mm-dd hh24:mi:ss')from dual;输出:2022/2/12 23:15:12 --这里输出的是日期!二、结果集操作类函数:①、decode()函数--用于将输入的数值与函数中的参数列表相比较,根据输入值返回一个对应值。

和case...when...then...else语句功能一样函数语法:decode(f,t1,j1,t2,j2,t3,j3...t(n),j(n),k)参数:f:条件(字段或运算值)t:值J:返回值K:缺省值(默认值)函数说明:t1和j2为一组,t2和j2为一组,t3和j3为一组,以此类推;当f等于t(n)数值时,则返回对应的j(n)返回值;如果f不等于任何一个t(n),则返回k缺省值特别注意:由于每个t值都对应一个j返回值,当我们设置参数个数时,f为第一个参数这是固定的,之后的两个参数为一组(t、j),最后参数只有一个时则这个参数就是缺省值k,如果参数个数没有单独的一个参数出来,则没指定k,程序会自动添加缺省值k,这个k为null值!函数案例:select decode(id,1,'返回值1',2,'返回值2',3,'返回值3','缺省值k')替换,id from text;输出:句中必须要有from命令,所以oracle定义了虚拟表dual,提供一些特殊字段的查询,例如时间日期、算术运算等功能。

Oracle日期函数大全(各函数锦集)

Oracle日期函数大全(各函数锦集)

Oracle日期函数大全(各函数锦集)一、常用日期数据格式1.Y或YY或YYY 年的最后一位,两位或三位SQL> Select to_char(sysdate,'Y') from dual; TO_CHAR(SYSDATE,'Y')--------------------7SQL> Select to_char(sysdate,'YY') from dual; TO_CHAR(SYSDATE,'YY')---------------------07SQL> Select to_char(sysdate,'YYY') from dual; TO_CHAR(SYSDATE,'YYY')----------------------0072.Q 季度1~3月为第一季度,2表示第二季度。

SQL> Select to_char(sysdate,'Q') from dual; TO_CHAR(SYSDATE,'Q')--------------------23.MM 月份数SQL> Select to_char(sysdate,'MM') from dual; TO_CHAR(SYSDATE,'MM')---------------------054.RM 月份的罗马表示(V在罗马数字中表示5)SQL> Select to_char(sysdate,'RM') from dual; TO_CHAR(SYSDATE,'RM')---------------------5.Month 用9个字符长度表示的月份名SQL> Select to_char(sysdate,'Month') from dual;TO_CHAR(SYSDATE,'MONTH')------------------------5月6.WW 当年第几周(2007年5月29日为2007年第22周)SQL> Select to_char(sysdate,'WW') from dual;TO_CHAR(SYSDATE,'WW')---------------------227.W 本月第几周(2007年5月29日为5月第5周)SQL> Select to_char(sysdate,'W') from dual;TO_CHAR(SYSDATE,'W')--------------------58.DDD 当年第几天(2007年5月29日为2007年第149天)SQL> Select to_char(sysdate,'DDD') from dual;TO_CHAR(SYSDATE,'DDD')----------------------1499. DD 当月第几天SQL> Select to_char(sysdate,'DD') from dual;TO_CHAR(SYSDATE,'DD')---------------------2910.D 周内第几天SQL> Select to_char(sysdate,'D') from dual;TO_CHAR(SYSDATE,'D')--------------------11.DY 中文的星期几((2007年5月29日为星期二))SQL> Select to_char(sysdate,'DY') from dual;TO_CHAR(SYSDATE,'DY')---------------------星期二12.HH或HH12 12进制小时数(16:09分为用12小时制计时为4点)SQL> Select to_char(sysdate,'HH') from dual;TO_CHAR(SYSDATE,'HH')---------------------0413.HH24 24小时制SQL> Select to_char(sysdate,'HH24') from dual;TO_CHAR(SYSDATE,'HH24')-----------------------16二、常用时间函数1.trunc(sysdate,'Q') 本季度第一天SQL> select trunc(sysdate,'Q') from dual;TRUNC(SYSDATE,'Q')------------------2007-4-12.trunc(sysdate,'D') 本周的第一天(周日)SQL> select trunc(sysdate,'D')from dual;TRUNC(SYSDATE,'D')------------------2007-5-27/doc/d112362228.html,st_day(sysdate) 本月最后一天SQL> select last_day(sysdate) from dual;LAST_DAY(SYSDATE)-----------------2007-5-31 15:20:34.add_months(sysdate,2) 日期sysdate后推2个月SQL> select add_months(sysdate,2) from dual;ADD_MONTHS(SYSDATE,2)---------------------2007-7-29 15:21:145.next_day(sysdate,2) 日期sysdate之后的第一周中,第2(指定星期的第几天)是什么日期SQL> select next_day(sysdate,2) from dual;NEXT_DAY(SYSDATE,2)-------------------2007-6-4 15:22:106.Months_between(f,s) 日期f和s间相差月数SQL> selectmonths_between(sysdate,to_date('2007-04-12','yyyy-mm-dd'))from dual; MONTHS_BETWEEN(SYSDATE,TO_DATE ------------------------------1.569099089008367.得到SYSDATE+5所在的月份SQL> SELECT to_char(SYSDATE+5,'mon','nls_date_language=american') FROM dual;TO_CHAR(SYSDATE+5,'MON','NLS_D------------------------------jun8.current_date()返回当前会话时区中的当前日期。

Oracleto_date函数的用法介绍

Oracleto_date函数的用法介绍

Oracleto_date函数的用法介绍to_date(string, format)其中,string是要转换为日期的字符串,而format是可选的日期格式,用于指定字符串的解析方式。

如果不提供格式参数,则to_date(将使用默认的日期格式。

下面让我们来详细介绍to_date(函数的用法和注意事项。

1.简单日期转换:to_date(函数可以将包含日期信息的字符串转换为日期类型。

例如,我们有一个字符串'2024-07-15',并希望将其转换为日期类型。

可以使用以下语句实现转换:```SELECT to_date('2024-07-15', 'YYYY-MM-DD') FROM dual;```这将返回一个日期类型的值,该值为2024年7月15日。

2.解析日期和时间:to_date(函数还可以用于解析包含日期和时间信息的字符串。

例如,我们有一个字符串'2024-07-15 10:30:00',并希望将其转换为日期类型。

可以使用以下语句实现转换:```SELECT to_date('2024-07-15 10:30:00', 'YYYY-MM-DDHH24:MI:SS') FROM dual;```这将返回一个日期类型的值,该值为2024年7月15日10:30:00。

3.默认日期格式:如果在to_date(函数中未指定格式参数,则会使用默认的日期格式。

默认格式由Oracle数据库的NLS_DATE_FORMAT参数控制。

可以使用以下语句查看默认日期格式:```SELECT value FROM v$parameter WHERE name = 'nls_date_format';```例如,默认格式可能是'MM/DD/YYYY'。

在这种情况下,执行以下语句:```SELECT to_date('07/15/2024') FROM dual;```这将返回一个日期类型的值,该值为2024年7月15日。

Oracle日期函数和转换函数

Oracle日期函数和转换函数

Oracle⽇期函数和转换函数⼀、⽇期函数⽇期函数⽤于处理date类型的数据,两个⽇期相减返回⽇期之间相差的天数。

⽇期不允许做加法运算,⽆意义。

常见代表符号:yyyy 年,mm ⽉,dd ⽇,hh ⼩时,mi 分钟,ss 秒,day 星期默认情况下⽇期格式是dd-mon-yy即12-3⽉-19(1)sysdate: 该函数返回系统时间(2)months_between(m,n)⽇期m和⽇期n相差多少⽉数(3)add_months(d,n)在⽇期d上增加n个⽉数(4)next_day(d, '星期*') 指定⽇期d下⼀个星期*对应的⽇期(5)last_day(d):返回指定⽇期d所在⽉份的最后⼀天(6)extract(month from d)从⽇期d上提取⽉份数(7)round(d,time)⽇期的四舍五⼊(8)trunc(d,time)⽇期的截断以下是⽇期函数的⼀些例⼦及效果图:各种情况例⼦:months_between select months_between('01-9⽉-95','11-1⽉-94') from dual; --19.6774193548387add_months select add_months('11-2⽉-18',6) from dual; --2018/8/11next_day select next_day('11-2⽉-18','星期六') from dual; --2018/2/17last_day select last_day('11-2⽉-18') from dual; --2018/2/28round 四舍五⼊⽉份 25-7⽉-18 select round(to_date('25-7⽉-2018'), 'month') from dual; --2018/8/1round 四舍五⼊年份 25-7⽉-18 select round(to_date('25-7⽉-2018’), 'year') from dual; --2019/1/1trunc 截断⽉份 25-7⽉-18 select trunc(to_date('25-7⽉-2018'), 'month') from dual; --2018/7/1trunc 截断年份 25-7⽉-18 select trunc(to_date('25-7⽉-2018'), 'year') from dual; --2018/1/1trunc 当前⽇期的00点00分00秒 select trunc(sysdate) from dual;sql⽐较⽇期今天之前:select * from table where update < to_date('2012-09-07 00:00:00', 'yyyy-MM-dd HH24:mi:ss');精确时间:select * from table where update = to_date('2012-09-07 00:00:00', 'yyyy-MM-dd HH24:mi:ss');某段时间内:select * from table where update <= to_date('2012-09-07 00:00:00', 'yyyy-MM-dd HH24:mi:ss')and update >= to_date('2010-02-07 00:00:00', 'yyyy-MM-dd HH24:mi:ss')eg:查找已经⼊职8个⽉多的员⼯SQL>select * from empwhere sysdate>=add_months(hiredate,8);eg:显⽰满10年服务年限的员⼯的姓名和受雇⽇期。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 获取系统日期,日期转换函数
learning
oracle 获取系统日期和日期转换函数应用获取系统日期:SYSDA TE() 格式化日期:TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)
或TO_DATE(SYSDA TE(),'YY/MM/DD HH24:MI:SS)
格式化数字:TO_NUMBER
注:TO_CHAR 把日期或数字转换为字符串
TO_CHAR(number, '格式')
TO_CHAR(salary, '$99,999.99')
TO_CHAR(date, '格式')
TO_DATE 把字符串转换为数据库中的日期类型
TO_DATE(char, '格式')
TO_NUMBER 将字符串转换为数字
TO_NUMBER(char, '格式')
返回系统日期,输出25-12月-09
select sysdate from dual;
mi是分钟,输出2009-12-25 14:23:31
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
mm会显示月份,输出2009-12-25 14:12:31
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;
输出09-12-25 14:23:31
select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual
输出2009-12-25 14:23:31
select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual 而如果把上式写作:
select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual 则会报错,因为小时hh是12进制,14为非法输入,不能匹配。

输出$10,000,00 :
select to_char(1000000,'$99,999,99') from dual;
输出RMB10,000,00 :
select to_char(1000000,'L99,999,99') from dual;
输出1000000.12 :
select trunc(to_number('1000000.123'),2) from dual;
select to_number('1000000.123') from dual;
转换的格式:
表示year 的:y 表示年的最后一位、
yy 表示年的最后2位、
yyy 表示年的最后3位、
yyyy 用4位数表示年
表示month的:mm 用2位数字表示月、
mon 用简写形式,比如11月或者nov 、
month 用全称,比如11月或者november
表示day的:dd 表示当月第几天、
ddd 表示当年第几天、
dy 当周第几天,简写,比如星期五或者fri 、
day 当周第几天,全称,比如星期五或者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:59
12小时制下的时间范围:1:00:00-12:59:59
数字格式: 9 代表一个数字
0 强制显示0
$ 放置一个$符
L 放置一个浮动本地货币符
. 显示小数点
, 显示千位指示符
补充:
当前时间减去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;。

相关文档
最新文档