oracle中
select usernumber from usertailor where createtime>to_date(
常用日期型函數
SQL> Select sysdate from dual;
SYSDATE
SQL> Select last_day(sysdate) from dual;
LAST_DAY(S
用於從一個日期值增加或減少一些月份
date_value:=add_months(date_value
SQL> Select add_months(sysdate
ADD_MONTHS
SQL> select months_between(sysdate
MONTHS_BETWEEN(SYSDATE
返回由
SQL> SELECT next_day(to_date(
NEXT_DAY(T
date_value:=current_date
SQL> column sessiontimezone for a
SQL> select sessiontimezone
SESSIONTIMEZONE CURRENT_DA
+
SQL> alter session set time_zone=
會話已更改
SQL> select sessiontimezone
SESSIONTIMEZONE CURRENT_TIMESTAMP
SQL> select current_timestamp from dual;
CURRENT_TIMESTAMP
SQL> select dbtimezone from dual;
DBTIME
date_value:=extract(date_field from [datetime_value|interval_value])
SQL> select extract(month from sysdate)
This Month
SQL> select extract(year from add_months(sysdate
Years
SQL> select localtimestamp from dual;
LOCALTIMESTAMP
常用日期數據格式(該段為摘抄)
Y或YY或YYY 年的最後一位
SYEAR或YEAR SYEAR使公元前的年份前加一負號 Select to_char(sysdate
Q 季度
MM 月份數 Select to_char(sysdate
RM 月份的羅馬表示 Select to_char(sysdate
Month 用
WW 當年第幾周 Select to_char(sysdate
W 本月第幾周 Select to_char(sysdate
DDD 當年第幾
DD 當月第幾天 Select to_char(sysdate
D 周內第幾天 Select to_char(sysdate
DY 周內第幾天縮寫 Select to_char(sysdate
HH或HH
HH
MI 分鐘數(
SS 秒數(
提示注意不要將MM格式用於分鐘(分鐘應該使用MI)
現在給出一些實踐後的用法
SQL> select to_char(add_months(last_day(sysdate)
dual;
LASTDAY
SQL> select to_char(add_months(sysdate
PRETODAY
SQL> select to_char(add_months(last_day(sysdate)+
FIRSTDAY
SQL> select to_char(sysdate
TO
SQL> select to_char(sysdate
TO
SQL> select to_char(sysdate
T
SQL> select to_char(sysdate
TO_C
select to_char(t
select trunc(sysdate
from dba_objects
where rownum <
where to_char(t
and trim(to_char(t
如果把where to_char(t
內容如下
SQL> alter session set nls_date_format=
會話已更改
SQL> set serverout on
SQL> declare
源時間:
源時間減
源時間減
源時間減
源時間減
PL/SQL 過程已成功完成
在Oracle中實現時間相加處理
create or replace function Add_Times(d
is
hh number;
mm number;
ss number;
hours number;
dResult date;
begin
select to_number(to_char(NewTime
select to_number(to_char(NewTime
select to_number(to_char(NewTime
hours := (hh + (mm /
select d
return(dResult);
end Add_Times;
在Oracle
計算時間差是Oracle DATA數據類型的一個常見問題
一旦你發現了時間差異
使用完善復雜的轉換函數來轉換日期是一個誘惑
round(to_number(end
round(to_number(end
round(to_number(end
顯示時間差的默認模式是什麼?為了找到這個問題的答案
SQL> select sysdate
SYSDATE
這裡
Select
(sysdate
from
dual;
(SYSDATE
當然
Select
round(to_number(sysdate
from
dual;
ROUND(TO_NUMBER(SYSDATE
我們可以用這些函數把一個消逝時間近似轉換成分鐘並把這個值寫入Oracle表格中
Update
perfstat
set
elapsed_minutes =
round(to_number(logoff_time
where
user = user_id
and
elapsed_minutes is NULL;
查出任一年月所含的工作日
CREATE OR REPLACE FUNCTION Get_WorkingDays(
ny IN VARCHAR
) RETURN INTEGER IS
/*
函數名稱
中文名稱
作者姓名: XINGPING
編寫時間:
輸入參數
返 回 值
算法描述
Result INTEGER;
BEGIN
SELECT COUNT(*) INTO Result
FROM (SELECT MOD(MOD(q
FROM ( SELECT to_date(ny||t
FROM (SELECT substr(
FROM ljrq z WHERE Rownum<=
) t
WHERE to_date(ny||t
BETWEEN to_date(ny
AND last_day(to_date(ny
)q
) a
WHERE a
RETURN Result;
END Get_WorkingDays;
______________________________________
還有一個版本
CREATE OR REPLACE FUNCTION Get_WorkingDays(
ny IN VARCHAR
) RETURN INTEGER IS
/*
函數名稱
中文名稱
作者姓名: XINGPING
編寫時間:
輸入參數
返 回 值
算法描述
Result INTEGER :=
myts INTEGER;
scts INTEGER;
rq DATE;
djt INTEGER :=
BEGIN
myts := to_char(last_day(to_date(ny
LOOP
rq := TO_date(ny||substr(
scts := rq
IF MOD(MOD(scts
Result := Result +
END IF;
djt := djt +
EXIT WHEN djt>myts;
END LOOP;
RETURN Result;
END Get_WorkingDays;
From:http://tw.wingwit.com/Article/program/Oracle/201311/18138.html