Oracle 获取当前日期及日期格式
Oracle 获取当前日期及日期格式
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 TO_DATE 日期格式大全
Oracle TO_DATE 日期格式大全Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02 13:45:25为例)Year:yy two digits 两位年显示值:07yyy three digits 三位年显示值:007yyyy four digits 四位年显示值:2007Month:mm number 两位月显示值:11mon abbreviated 字符集表示显示值:11月,若是英文版,显示novmonth spelled out 字符集表示显示值:11月,若是英文版,显示novemberDay:dd number 当月第几天显示值:02ddd number 当年第几天显示值:02dy abbreviated 当周第几天简写显示值:星期五,若是英文版,显示friday spelled out 当周第几天全写显示值:星期五,若是英文版,显示fridayddspth spelled out, ordinal twelfthHour:hh two digits 12小时进制显示值:01hh24 two digits 24小时进制显示值:13Minute:mi two digits 60进制显示值:45Second:ss two digits 60进制显示值:25其它Q digit 季度显示值:4 WW digit 当年第几周显示值:44 W digit 当月第几周显示值:124小时格式下时间范围为: 0:00:00 - 23:59:59....12小时格式下时间范围为: 1:00:00 - 12:59:59 ....1. 日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒select to_date('2004-05-07 13:23:44','yyyy-mm-ddhh24:mi:ss') from dual//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;星期一selectto_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_DATE(null)6.月份差a_date between to_date('20011201','yyyymmdd') andto_date('20011231','yyyymmdd')那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
数据库日期格式处理(Oracle)
TO_DATE格式(以时间:2007-11-02 13:45:25为例)Year:yy two digits 两位年显示值:07yyy three digits 三位年显示值:007yyyy four digits 四位年显示值:2007Month:mm number 两位月显示值:11mon abbreviated 字符集表示显示值:11月,若是英文版,显示novmonth spelled out 字符集表示显示值:11月,若是英文版,显示novemberDay:dd number 当月第几天显示值:02ddd number 当年第几天显示值:02dy abbreviated 当周第几天简写显示值:星期五,若是英文版,显示friday spelled out 当周第几天全写显示值:星期五,若是英文版,显示fridayddspth spelled out, ordinal twelfthHour:hh two digits 12小时进制显示值:01hh24 two digits 24小时进制显示值:13Minute:mi two digits 60进制显示值:45Second:ss two digits 60进制显示值:25其它Q digit 季度显示值:4WW digit 当年第几周显示值:44W digit 当月第几周显示值:124小时格式下时间范围为: 0:00:00 - 23:59:59....12小时格式下时间范围为: 1:00:00 - 12:59:59 ....1. 日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual//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_DATE(null)6.月份差a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd') 那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
oracle中date类型格式
oracle中date类型格式在Oracle 数据库中,`DATE` 类型用于存储日期和时间信息。
日期格式在Oracle 中是通过日期格式模型指定的。
以下是一些常见的日期格式模型和它们的含义:1. `DD-MM-YYYY`:日-月-年-例如:01-02-2023 表示2023 年2 月1 日。
2. `MM/DD/YYYY`:月/日/年-例如:02/01/2023 表示2023 年2 月1 日。
3. `YYYY-MM-DD`:年-月-日-例如:2023-02-01 表示2023 年2 月1 日。
4. `YYYY-MM-DD HH24:MI:SS`:年-月-日时:分:秒(24小时制)-例如:2023-02-01 14:30:45 表示2023 年2 月1 日下午2 点30 分45 秒。
5. `MON DD, YYYY HH:MI:SS AM`:月日, 年时:分:秒AM/PM-例如:Feb 01, 2023 02:30:45 PM 表示2023 年2 月1 日下午2 点30 分45 秒。
这只是一些常见的日期格式示例,实际上有许多其他的日期格式可以在Oracle 中使用。
在进行数据库查询或插入操作时,你可以使用`TO_DATE` 函数将字符串转换为`DATE` 类型,或使用`TO_CHAR` 函数将`DATE` 类型格式化为字符串。
例如:```sql--将字符串转换为DATESELECT TO_DATE('2023-02-01', 'YYYY-MM-DD') FROM dual;--将DATE 格式化为字符串SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;```在这些例子中,`'YYYY-MM-DD'` 和`'YYYY-MM-DD HH24:MI:SS'` 是日期格式模型。
oracle年月日时分秒的格式
Oracle年月日时分秒的格式一、概述在数据库系统中,日期和时间的处理是非常重要的一个方面。
Oracle数据库提供了丰富的日期和时间函数,可以满足不同的需求。
其中,日期和时间的格式化是其中的关键操作之一。
在Oracle中,我们可以使用不同的格式来表示年月日时分秒。
本文将详细介绍Oracle中年月日时分秒的格式化方法。
二、日期和时间的数据类型在Oracle数据库中,日期和时间被定义为特殊的数据类型。
主要的数据类型有DATE、TIMESTAMP和TIMESTAMP WITH TIME ZONE等。
这些数据类型可以存储年月日时分秒的信息。
2.1 DATE数据类型DATE数据类型是Oracle中最常用的日期和时间数据类型。
它可以存储从公元前4712年到公元9999年的日期和时间。
DATE数据类型的格式默认为”YYYY-MM-DD HH24:MI:SS”,其中YYYY表示年份,MM表示月份,DD表示日期,HH24表示小时(24小时制),MI表示分钟,SS表示秒钟。
2.2 TIMESTAMP数据类型TIMESTAMP数据类型是Oracle中用于存储日期和时间信息的另一种数据类型。
它可以存储更精确的时间信息,包括毫秒级别的精度。
TIMESTAMP数据类型的格式也是”YYYY-MM-DD HH24:MI:SS.FF”,其中FF表示毫秒。
2.3 TIMESTAMP WITH TIME ZONE数据类型TIMESTAMP WITH TIME ZONE数据类型是一种带有时区信息的日期和时间数据类型。
它可以存储时区偏移量,以便在不同的时区中正确地显示日期和时间。
TIMESTAMP WITH TIME ZONE数据类型的格式与TIMESTAMP数据类型相同。
三、日期和时间的格式化在Oracle数据库中,可以使用不同的函数来格式化日期和时间。
常用的函数有TO_CHAR、TO_DATE和TO_TIMESTAMP等。
3.1 TO_CHAR函数TO_CHAR函数用于将日期和时间数据类型转换为指定的字符串格式。
oracleto_date日期格式大全
Oracle TO_DATE 日期格式大全Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02 13:45:25为例)Year:yy two digits 两位年显示值:07yyy three digits 三位年显示值:007yyyy four digits 四位年显示值:2007Month:mm number 两位月显示值:11mon abbreviated 字符集表示显示值:11月,若是英文版,显示novmonth spelled out 字符集表示显示值:11月,若是英文版,显示novemberDay:dd number 当月第几天显示值:02ddd number 当年第几天显示值:02dy abbreviated 当周第几天简写显示值:星期五,若是英文版,显示friday spelled out 当周第几天全写显示值:星期五,若是英文版,显示fridayddspth spelled out, ordinal twelfthHour:hh two digits 12小时进制显示值:01hh24 two digits 24小时进制显示值:13Minute:mi two digits 60进制显示值:45Second:ss two digits 60进制显示值:25其它Q digit 季度显示值:4 WW digit 当年第几周显示值:44 W digit 当月第几周显示值:124小时格式下时间范围为: 0:00:00 - 23:59:59....12小时格式下时间范围为: 1:00:00 - 12:59:59 ....1. 日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒select to_date('2004-05-07 13:23:44','yyyy-mm-ddhh24:mi:ss') from dual//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;星期一selectto_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_DATE(null)6.月份差a_date between to_date('20011201','yyyymmdd') andto_date('20011231','yyyymmdd')那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。
Oracle的日期函数(包含季度)
Oracle的日期函数相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。
那在oracle中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。
常用日期型函数1。
Sysdate 当前日期和时间SQL> Select sysdate from dual;SYSDATE----------21-6月 -052。
Last_day 本月最后一天SQL> Select last_day(sysdate) from dual;LAST_DAY(S----------30-6月 -053。
Add_months(d,n) 当前日期d后推n个月用于从一个日期值增加或减少一些月份date_value:=add_months(date_value,number_of_months)SQL> Select add_months(sysdate,2) from dual;ADD_MONTHS----------21-8月 -054。
Months_between(f,s) 日期f和s间相差月数SQL> select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'))from dual;MONTHS_BETWEEN(SYSDA TE,TO_DA TE('2005-11-12','YYYY-MM-DD'))-----------------------------------------------------------4.69667415。
NEXT_DAY(d, day_of_week)返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。
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认证考试网更新:2012-2-17 编辑:阿原常用之日期格式日期格式说明------------------------------------------------------------------------YYYY/MM/DD -- 年/月/日YYYY -- 年(4位)YYY -- 年(3位)YY -- 年(2位)MM -- 月份DD -- 日期D -- 星期(星期日=1; 星期一=2; 星期二=3;星期三=4 ;星期四=5; 星期五=6; 星期六=7)DDD -- 一年之第几天WW -- 一年之第几周W -- 一月之第几周YYYY/MM/DD HH24:MI:SS -- 年/月/日时(24小时制):分:秒YYYY/MM/DD HH:MI:SS -- 年/月/日时(非24小时制):分:秒J -- Julian day,Bc 4712/01/01 为1 RR/MM/DD -- 公元2000问题(00-49 = 下世纪;50-99 = 本世纪)ex.select to_char(sysdate,'YYYY/MM/DD') FROM DUAL; -- 2007/09/20select to_char(sysdate,'YYYY') FROM DUAL; -- 2007select to_char(sysdate,'YYY') FROM DUAL; -- 007select to_char(sysdate,'YY') FROM DUAL; -- 07select to_char(sysdate,'MM') FROM DUAL; -- 09select to_char(sysdate,'DD') FROM DUAL; -- 20select to_char(sysdate,'D') FROM DUAL; -- 5select to_char(sysdate,'DDD') FROM DUAL; -- 263select to_char(sysdate,'WW') FROM DUAL; -- 38select to_char(sysdate,'W') FROM DUAL; -- 3select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') FROM DUAL; -- 2007/09/20 15:24:13select to_char(sysdate,'YYYY/MM/DD HH:MI:SS') FROM DUAL; -- 2007/09/20 03:25:23select to_char(sysdate,'J') FROM DUAL; -- 2454364select to_char(sysdate,'RR/MM/DD') FROM DUAL; -- 07/09/20。
getdate()在oracle的用法
文章标题:深度解读getdate()在Oracle中的使用方法在今天的文章中,我们将深入探讨getdate()在Oracle中的使用方法。
getdate()是一个在Oracle数据库中常用的函数,它用于获取当前系统的日期和时间。
本文将从简到繁地介绍getdate()函数的基本用法,然后深入探讨其在实际应用中的广泛用途。
1. getdate()函数的基本用法在Oracle数据库中,getdate()函数用于获取当前系统的日期和时间。
其基本语法如下:SELECT getdate() FROM dual;该语句将返回当前系统的日期和时间。
在实际应用中,我们可以将这个值赋予变量,用于各种计算和比较操作。
2. getdate()函数在数据分析中的应用在数据分析领域,我们经常需要获取数据的时间戳,以便进行时间序列分析、趋势分析等操作。
getdate()函数可以帮助我们轻松获取当前时间,从而简化数据分析过程。
我们可以使用getdate()函数将当前时间戳插入到数据表中,以记录数据的更新时间。
3. getdate()函数在报表生成中的应用在报表生成过程中,我们通常需要将当前日期作为报表的日期标识,或者计算报表的生成耗时。
getdate()函数可以帮助我们获取当前系统的日期和时间,并在报表中加入相应的时间信息。
这样可以使报表更加直观、及时和有用。
4. 个人观点和理解getdate()函数在Oracle中的灵活应用,使得我们可以轻松获取当前系统的日期和时间,并在各种计算、比较和展示操作中使用。
它极大地简化了时间相关操作的复杂度,提高了数据分析和报表生成的效率和准确性。
总结回顾通过本文的深度解读,我们详细介绍了getdate()函数在Oracle中的基本用法和广泛应用。
我们还共享了个人观点和理解。
希望读者通过本文的阅读,能更全面、深刻和灵活地掌握getdate()函数在Oracle 中的使用方法。
getdate()函数在Oracle中的用法十分灵活,可以满足各种时间操作的需求。
oralce_mysql_获取当前年的通用方法_概述说明
oralce mysql 获取当前年的通用方法概述说明1. 引言1.1 概述本文将介绍在Oracle和MySQL数据库中获取当前年份的通用方法。
无论是Oracle还是MySQL,都提供了多种方法来获得当前年份的值。
我们将分别介绍两种常用的方法,并提供相应的示例代码和注意事项。
1.2 文章结构本文共包含以下几个部分:- 引言:对文章的背景和内容进行概述。
- 正文:详细介绍两种获取当前年份的方法。
- 方法一:使用YEAR函数获取当前年份:描述该方法的原理和使用场景,并提供相应的示例代码和注意事项。
- 方法二:使用DATE_FORMAT函数提取当前日期中的年份部分:描述该方法的原理和适用情况,并给出示例代码和注意事项。
- 结论:总结两种方法,并指出它们各自的优缺点。
1.3 目的本文旨在帮助读者快速了解如何在Oracle和MySQL数据库中获取当前年份。
通过学习本文所介绍的两种方法,读者将能够根据自己实际需求选择合适的方式来获取所需数据。
同时,本文还将重点强调每种方法所需要注意的问题,以避免可能出现的错误或不符合预期结果。
通过阅读本文,读者将对这两个常用数据库系统有更深入的了解,并能够灵活应用相应的技巧。
2. 正文:在本文中,我们将讨论在Oracle和MySQL数据库中获取当前年份的通用方法。
获取当前年份对于很多业务场景都非常重要,比如需要统计数据、计算年龄等。
在Oracle数据库中,可以使用SYSDATE函数结合EXTRACT函数来获取当前年份。
SYSDATE函数会返回当前日期和时间,而EXTRACT函数则用于提取日期或时间的特定部分。
通过提取年份部分,我们可以得到当前年份的值。
示例代码如下:```SELECT EXTRACT(YEAR FROM SYSDATE) AS current_yearFROM dual;```需要注意的是,在Oracle中,我们使用`FROM dual`语句是因为该数据库要求从某个表中查询数据,并且dual表是一个特殊的表,它只包含一行数据。
Oracle中to_char和to_number和to_date教程
Oracle中to_char和to_number和to_date教程在Oracle数据库中,to_char,to_number和to_date是三个非常常用的函数。
它们分别用于将不同类型的数据转换为字符型、数字型和日期型数据。
下面将逐一介绍它们的用法。
1. to_char函数to_char函数用于将不同类型的数据转换为字符型数据。
其基本语法如下:```to_char(expression, 'format')```expression是要转换的数据,可以是数字、日期等类型的数据。
'format'是转换后的字符型数据的格式。
to_char函数最常用的应用场景是将日期型数据转换为字符型数据。
例如,将日期型数据转换为指定格式的字符串:```SELECT to_char(sysdate, 'YYYY-MM-DD') FROM dual;```上述示例中,sysdate表示当前的日期,'YYYY-MM-DD'表示想要得到的日期格式。
该语句将返回当前日期的字符型数据,格式为YYYY-MM-DD。
除了日期型数据,to_char函数也可以将其他类型的数据转换为字符型数据,并指定转换后的格式。
例如,将数字转换为带千分位的字符串:``````2. to_number函数to_number函数用于将字符型数据转换为数字型数据。
其基本语法如下:```to_number(expression, 'format')```expression是要转换的字符型数据,'format'是转换后的数字型数据的格式。
to_number函数最常用的应用场景是将字符型数据转换为数字型数据。
例如,将字符型数据转换为整数:``````如果要将带有小数的字符串转换为浮点数或双精度数,则可以使用to_number函数。
例如:```SELECT to_number('3.14') FROM dual;```上述示例中,'3.14'是要转换的字符型数据。
Oracle数据库日期格式转换操作
Oracle数据库⽇期格式转换操作1. ⽇期转化为字符串 (以2016年10⽉20⽇为例)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') strDateTime from dual; --获取年-⽉-⽇时:分:秒--显⽰结果为:2016-10-20 12:35:21select to_char(sysdate,'yyyymmdd hh24:mi:ss') strDateTime from dual; --获取年⽉⽇时:分:秒--显⽰结果为:20161020 13:39:25select to_char(sysdate,'yyyymmdd') strDateTime from dual; --获取年⽉⽇--显⽰结果为:20161020select to_char(sysdate,'yyyy') strYear from dual; --获取年--显⽰结果为:2016select to_char(sysdate,'mm') strMonth from dual; --获取⽉--显⽰结果为:10select to_char(sysdate,'dd') strDay from dual; --获取⽇--显⽰结果为:20select to_char(sysdate,'hh24') strHour from dual; --获取时--显⽰结果为:13select to_char(sysdate,'mi') strMinute from dual; --获取分--显⽰结果为:46select to_char(sysdate,'ss') strSecond from dual; --获取秒--显⽰结果为:432. 字符串和时间互转select to_date('2010-10-20 13:23:44','yyyy-mm-dd hh24:mi:ss') dateTime from dual;显⽰结果:2010/10/20 13:23:44select to_date('2010-10-20 13:23:44','yyyy/mm/dd hh24:mi:ss') dateTime from dual;显⽰结果:2010/10/20 13:23:44select to_char( to_date(222,'J'),'Jsp') from dual;显⽰结果:Two Hundred Twenty-Two如果按照下⾯的例⼦写,会报错:ORA-01849:⼩时值必须介于1和12之间。
oracle中to_date详细用法示例(oracle日期格式转换)
oracle中to_date详细⽤法⽰例(oracle⽇期格式转换)1. ⽇期和字符转换函数⽤法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //⽇期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的⽉select to_char(sysdate,'dd') as nowDay from dual; //获取时间的⽇select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒2. 字符串和时间互转select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dualselect 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 dual5. 时间为null的⽤法select id, active_date from table1UNIONselect 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点之前是不包含在这个范围之内的。
oracle常用的时间格式转换
oracle常⽤的时间格式转换oracle常⽤的时间格式转换1:取得当前⽇期是本⽉的第⼏周select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;TO_CHAR(SYSDATE,'YY')select to_char(sysdate,'W') from dual;2:取得当前⽇期是⼀个星期中的第⼏天,注意星期⽇是第⼀天select sysdate,to_char(sysdate,'D') from dual; 类似:select to_char(sysdate,'yyyy') from dual; --年select to_char(sysdate,'Q'from dual; --季select to_char(sysdate,'mm') from dual; --⽉select to_char(sysdate,'dd') from dual; --⽇ddd 年中的第⼏天WW 年中的第⼏个星期W 该⽉中第⼏个星期D 周中的星期⼏hh ⼩时(12)hh24 ⼩时(24)Mi 分ss 秒3:取当前⽇期是星期⼏中⽂显⽰:select to_char(sysdate,'day') from dual;TO_CHAR(SYSDATE,'DAY')星期四4:如果⼀个表在⼀个date类型的字段上⾯建⽴了索引,如何使⽤alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'5: 得到当前的⽇期select sysdate from dual;6: 得到当天凌晨0点0分0秒的⽇期select trunc(sysdate) from dual;-- 得到这天的最后⼀秒select trunc(sysdate) +0.99999from dual;-- 得到⼩时的具体数值select trunc(sysdate) +1/24from dual;select trunc(sysdate) +7/24from dual;7.得到明天凌晨0点0分0秒的⽇期select trunc(sysdate+1) from dual;select trunc(sysdate)+1from dual;8: 本⽉⼀⽇的⽇期select trunc(sysdate,'mm') from dual;9:得到下⽉⼀⽇的⽇期select trunc(add_months(sysdate,1),'mm') from dual;10:返回当前⽉的最后⼀天?select last_day(sysdate) from dual;select last_day(trunc(sysdate)) from dual;select trunc(last_day(sysdate)) from dual;select trunc(add_months(sysdate,1),'mm') -1from dual;11: 得到⼀年的每⼀天select trunc(sysdate,'yyyy')+ rn -1 date0from(select rownum rn from all_objectswhere rownum<366);12:今天是今年的第N天SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;13:如何在给现有的⽇期加上2年select add_months(sysdate,24) from dual;14:判断某⼀⽇⼦所在年分是否为润年select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;15:判断两年后是否为润年select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),'dd'),'29','闰年','平年') from dual;16:得到⽇期的季度select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;select to_char(sysdate, 'Q') from dual;TO_DATE格式(以时间:2007-11-0213:45:25为例)Year:yy two digits 两位年显⽰值:07yyy three digits 三位年显⽰值:007yyyy four digits 四位年显⽰值:2007Month:mm number两位⽉显⽰值:11mon abbreviated 字符集表⽰显⽰值:11⽉,若是英⽂版,显⽰novmonth spelled out 字符集表⽰显⽰值:11⽉,若是英⽂版,显⽰novemberDay:dd number当⽉第⼏天显⽰值:02ddd number当年第⼏天显⽰值:02dy abbreviated 当周第⼏天简写显⽰值:星期五,若是英⽂版,显⽰friday spelled out 当周第⼏天全写显⽰值:星期五,若是英⽂版,显⽰fridayddspth spelled out, ordinal twelfthHour:hh two digits 12⼩时进制显⽰值:01hh24 two digits 24⼩时进制显⽰值:13Minute:mi two digits 60进制显⽰值:45Second:ss two digits 60进制显⽰值:25其它Q digit 季度显⽰值:4WW digit 当年第⼏周显⽰值:44W digit 当⽉第⼏周显⽰值:124⼩时格式下时间范围为:0:00:00-23:59:59....12⼩时格式下时间范围为:1:00:00-12:59:59 ....1. ⽇期和字符转换函数⽤法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //⽇期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的⽉select to_char(sysdate,'dd') as nowDay from dual; //获取时间的⽇select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual//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 table1UNIONselect1, TO_DATE(null) from dual;注意要⽤TO_DATE(null)a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')那么12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。
Oracle时间日期操作
Oracle时间日期操作sysdate+(5/24/60/60) 在系统时间基础上延迟5秒sysdate+5/24/60 在系统时间基础上延迟5分钟sysdate+5/24 在系统时间基础上延迟5小时sysdate+5 在系统时间基础上延迟5天add_months(sysdate,-5) 在系统时间基础上延迟5月add_months(sysdate,-5*12) 在系统时间基础上延迟5年上月末的日期:select last_day(add_months(sysdate, -1)) from dual;本月的最后一秒:select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual本周星期一的日期:select trunc(sysdate,'day')+1 from dual年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual;今天是今年的第几周 :select to_char(sysdate,'fmww') from dual今天是本月的第几周:SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" FROM dual本月的天数SELECT to_char(last_day(SYSDATE),'dd') days FROM dual今年的天数select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual下个星期一的日期SELECT Next_day(SYSDATE,'monday') FROM dual============================================--计算工作日方法create table t(s date,e date);alter session set nls_date_format = 'yyyy-mm-dd';insert into t values('2003-03-01','2003-03-03');insert into t values('2003-03-02','2003-03-03');insert into t values('2003-03-07','2003-03-08');insert into t values('2003-03-07','2003-03-09');insert into t values('2003-03-05','2003-03-07');insert into t values('2003-02-01','2003-03-31');-- 这里假定日期都是不带时间的,否则在所有日期前加trunc即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 获取当前日期及日期格式
获取系统日期: SYSDATE()
格式化日期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)
表示day的:dd 表示当月第几天 、
ddd 表示当年第几天 、
dy 当周第几天,简写, 比如星期五或者fri 、
day 当周第几天,全称, 比如星期五或者friday
表示hour的:hh 2位数表示小时 12进制、
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
则会报错,因为小时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;
当前时间减去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;
或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)
格式化数字: TO_NUMBER
注: TO_CHAR 把日期或数字转换为字符串
TO_CHAR(number, '格式')
yyy 表示年的最后3位 、
yyyy 用4位数表示年
表示month的: mm 用2位数字表示月 、
mon 用简写形式, 比如11月或者nov 、
month 用全称, 比如11月或者november
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
TO_CHAR(salary, '$99,999.99')
TO_CHAR(date, '格式')
TO_DATE 把字符串转换为数据库中的日期类型
hh24 2位数表示小时 24小时
表示minute的:mi 2位数表示分钟
表示second的:ss 2位数表示秒 60进制
表示季度的:q 一位数 表示季度 (1-4)
另外还有ww 用来表示当年第几周 w用来表示当月第几周。
24小时制下的时间范围:00:00:00-23:59:59
返回系统日期,输出 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
TO_DATE(char, '格式')
TO_NUMBER 将字符串转换为数字
TO_NUMBER(char, '格式')
, 显示千位指示符
补充:
当前时间减去7分钟的时间
select sysdate,sysdate - interval '7' MINUTE from dual;
当前时间减去7小时的时间
select sysdate - interval '7' hour from dual;
输出 1000000.12 :
select trunc(to_number('1000000.123'),2) from dual;
select to_number('1000000.123') from dual;
转换的格式:
表示 year 的:y 表示年的最后一位 、
yy 表示年的最后2位 、
返回当前连接的用户:select user from dual;
12小时制下的时间范围:1:00:00-12:59:59
数字格式: 9 代表一个数字
0 强制显示0
$ 放置一个$符
L 放置一个浮动本地货币符
. 显示小数点
时间间隔乘以一个数字
select sysdate,sysdate - 8*interval '7' hour from dual;
含义解释:
Dual伪列
Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中。
不同系统可能返回日期的格式不一样。