当前位置:首页 » 操作系统 » oracle取数据库时间

oracle取数据库时间

发布时间: 2022-07-24 09:31:09

1. oracle 数据库时间取数

CREATE TABLE test (
"结算周期" INT,
"用户ID" VARCHAR(12),
"办理时间" VARCHAR(8),
"用户归属" CHAR(1)
);

INSERT INTO test
SELECT 4, '10000000000', '20121231', 'A' FROM al UNION ALL
SELECT 5, '10000000000', '20121230', 'B' FROM al UNION ALL
SELECT 7, '10000000000', '20121229', 'C' FROM al UNION ALL
SELECT 6, '10000000000', '20121228', 'D' FROM al;

ALTER session
SET nls_date_format='yyyy-mm-dd';

SELECT
ProcDate,
ProcMonths,
StartDate,
EndDate
FROM
test
MODEL
DIMENSION BY (TO_DATE("办理时间", 'YYYYMMDD') as ProcDate)
MEASURES("结算周期" as ProcMonths, TO_DATE("办理时间", 'YYYYMMDD') as StartDate, ADD_MONTHS(TO_DATE("办理时间", 'YYYYMMDD'), "结算周期") AS EndDate)
RULES AUTOMATIC ORDER
(
StartDate[ANY] = GREATEST( PRESENTV(EndDate[CURRENTV() - 1], EndDate[CURRENTV() - 1], CV(ProcDate)), CV(ProcDate) ),
EndDate[ANY] = ADD_MONTHS(StartDate[CURRENTV()], ProcMonths[CURRENTV()])
)
ORDER BY
ProcDate;

PROCDATE PROCMONTHS STARTDATE ENDDATE
---------- ---------- ---------- ----------
2012-12-28 6 2012-12-28 2013-06-28
2012-12-29 7 2013-06-28 2014-01-28
2012-12-30 5 2014-01-28 2014-06-28
2012-12-31 4 2014-06-28 2014-10-28

这样的效果?

2. oracle数据库时间日期查询

TO_DATE格式(以时间:2007-11-02 13:45:25为例)

Year:
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
yyyy four digits 四位年 显示值:2007

Month:
mm number 两位月 显示值:11
mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov
month spelled out 字符集表示 显示值:11月,若是英文版,显示november

Day:
dd number 当月第几天 显示值:02
ddd number 当年第几天 显示值:02
dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri
day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday
ddspth spelled out, ordinal twelfth

Hour:
hh two digits 12小时进制 显示值:01
hh24 two digits 24小时进制 显示值:13

Minute:
mi two digits 60进制 显示值:45

Second:
ss two digits 60进制 显示值:25

其它
Q digit 季度 显示值:4
WW digit 当年第几周 显示值:44
W digit 当月第几周 显示值:1

24小时格式下时间范围为: 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 al; //日期转化为字符串
select to_char(sysdate,'yyyy') as nowYear from al; //获取时间的年
select to_char(sysdate,'mm') as nowMonth from al; //获取时间的月
select to_char(sysdate,'dd') as nowDay from al; //获取时间的日
select to_char(sysdate,'hh24') as nowHour from al; //获取时间的时
select to_char(sysdate,'mi') as nowMinute from al; //获取时间的分
select to_char(sysdate,'ss') as nowSecond from al; //获取时间的秒

select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from al//
2.
select to_char( to_date(222,'J'),'Jsp') from al

显示Two Hundred Twenty-Two
3.求某天是星期几
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from al;
星期一
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from al;
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 al;
5. 时间为null的用法
select id, active_date from table1
UNION
select 1, TO_DATE(null) from al;

注意要用TO_DATE(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 = American
alter 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 al;
注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,
可查看
select * from nls_session_parameters
select * from V$NLS_PARAMETERS
8.
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' )

查找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;
1
select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
1.03225806451613

10. Next_day的用法
Next_day(date, day)

Monday-Sunday, for format code DAY
Mon-Sun, for format code DY
1-7, for format code D
11
select to_char(sysdate,'hh:mi:ss') TIME from all_objects
注意:第一条记录的TIME 与最后一行是一样的
可以建立一个函数来处理这个问题
create or replace function sys_date return date is
begin
return sysdate;
end;

select to_char(sys_date,'hh:mi:ss') from all_objects;

12.获得小时数
extract()找出日期或间隔值的字段值
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer
sql> select sysdate ,to_char(sysdate,'hh') from al;

SYSDATE TO_CHAR(SYSDATE,'HH')
-------------------- ---------------------
2003-10-13 19:35:21 07

SQL> select sysdate ,to_char(sysdate,'hh24') from al;

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 )
)
) 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
)
)
14.处理月份天数不定的办法
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from al
16.找出今年的天数
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from al
闰年的处理方法
to_char( last_day( to_date('02' | | :year,'mmyyyy') ), 'dd' )
如果是28就不是闰年

3. oracle中怎么获取表中数据最后更新时间

1、首先需要打开Oracle数据库使用sysdate获取时间,输入命令select sysdate from al回车确定。

4. oracle的时间取的到底是谁的时间

安装oracle的服务器,一般的业务,可以有2种时间获取,一个是应用服务器的时间,一个是数据库的时间
企业开发中,一般是以数据库的时间为准,也就是数据库所在的服务器的时间,独孤码农

5. mysql 和oracle数据库 获取时间的函数和格式化日期的函数

MySQL:获取时间用函数now(),
格式化日期用函数date_format()
Oracle
:获取时间用关键字sysdate,格式化日期函数用to_date()

6. 如何从oracle或sql server数据库中获取服务器当前时间

语句:GETDATE()
示例:SELECT
GETDATE()
获取当前时间:Select
To_Char
(SYSDATE,'MM-DD-YYYY
HH24:MI:SS')
"nowTime"
from
al
getdate()其他常用方式:
1、Select
Convert(varchar,getdate(),120)
--传唤时间格式(yyyy-mm-dd
hh:mi:ss)
--23(年月日)
2、Select
DATEDIFF(day,getdate(),convert(datetime,'2008-08-08
18:00:00',120))
--时间差
3、Select
DATENAME(dw,getdate())
--当前时间是一周内的第几天(中文,返回NVARCHAR型)
4、Select
DATEPART(dw,getdate())
--当前时间是一周内的第几天(星期日为一周的第一天,返回INT型)

7. 如何查看oracle数据库的时间

这样的:
默认情况下数据库的时间是跟随服务器的,不信的话你可以查询下: select sysdate from al;

8. 如何取得oracle中日期的时分秒

  • 获取年

  • select to_char(sysdate,'yyyy') from al--2016

    select to_char(sysdate,'YYYY') from al--2016

  • 获取月

    select to_char(sysdate,'mm') from al--10

    select to_char(sysdate,'MM') from al--10

  • 获取日

    select to_char(sysdate,'dd') from al--10

    select to_char(sysdate,'DD') from al--10

  • 获取时

    select to_char(sysdate,'hh24') from al--15

    select to_char(sysdate,'hh') from al--03

    select to_char(sysdate,'HH') from al--03

    select to_char(sysdate,'HH24') from al--15

  • 获取分钟

    select to_char(sysdate,'MI') from al--14

    select to_char(sysdate,'mi') from al--14

  • 获取秒

    select to_char(sysdate,'ss') from al--35

    select to_char(sysdate,'SS') from al--40

9. 怎样在javascript中读取oracle数据库当前时间

如果你在
java中会获得数据库时间就行了,在jsp中写在<%%>中的语句就是纯java代码了,在这个里面获得时间比如说String
time=....;
然后再js中:
var
dbTime=<%=time%>;
然后就可以用dbTime做要做的事情了。

10. 我想用oracle数据库中分别提取出date年月日和时间,该怎么写

1、因为oracle运行在Linux系统下,首先,要连接Linux系统。

热点内容
安卓手机壁纸如何更换成动态壁纸 发布:2025-01-20 01:40:27 浏览:705
安卓微信签名在哪里修改 发布:2025-01-20 01:25:31 浏览:109
安卓电脑管家怎么恢复出厂设置 发布:2025-01-20 01:24:06 浏览:313
qt编译sqlite库 发布:2025-01-20 01:22:30 浏览:525
360摄像头存储设置 发布:2025-01-20 01:16:01 浏览:538
js防缓存 发布:2025-01-20 01:15:47 浏览:495
编程生日卡 发布:2025-01-20 01:15:14 浏览:206
android备忘录源码 发布:2025-01-20 01:06:32 浏览:455
怎么禁用aspx缓存 发布:2025-01-20 01:00:50 浏览:688
我的手机如何恢复安卓系统 发布:2025-01-20 00:55:48 浏览:367