oracle取資料庫時間
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,'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
select to_char(sysdate,'yyyy') from al--2016
select to_char(sysdate,'YYYY') from al--2016
9. 怎樣在javascript中讀取oracle資料庫當前時間
如果你在
java中會獲得資料庫時間就行了,在jsp中寫在<%%>中的語句就是純java代碼了,在這個裡面獲得時間比如說String
time=....;
然後再js中:
var
dbTime=<%=time%>;
然後就可以用dbTime做要做的事情了。
10. 我想用oracle資料庫中分別提取出date年月日和時間,該怎麼寫
1、因為oracle運行在Linux系統下,首先,要連接Linux系統。