锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
sysdate 涓烘暟鎹簱鏈嶅姟鍣ㄧ殑褰撳墠緋葷粺鏃墮棿銆?
to_char 鏄皢鏃ユ湡鍨嬭漿涓哄瓧絎﹀瀷鐨勫嚱鏁般?
to_date 鏄皢瀛楃鍨嬭漿涓烘棩鏈熷瀷鐨勫嚱鏁幫紝涓鑸嬌鐢?yyyy-mm-dd hh24:mi:ss鏍煎紡錛屽綋娌℃湁鎸囧畾鏃墮棿閮ㄥ垎鏃訛紝鍒欓粯璁ゆ椂闂翠負 00:00:00
dual 琛ㄤ負sys鐢ㄦ埛鐨勮〃錛岃繖涓〃浠呮湁涓鏉¤褰曪紝鍙互鐢ㄤ簬璁$畻涓浜涜〃杈懼紡錛屽鏋滄湁濂戒簨鑰呯敤 sys 鐢ㄦ埛鐧誨綍緋葷粺錛岀劧鍚庡湪 dual 琛ㄥ鍔犱簡璁板綍鐨勮瘽錛岄偅涔堢郴緇?9.999%涓嶈兘浣跨敤浜嗐備負浠涔堜嬌鐢ㄧ殑鏃跺欎笉鐢?sys.dual 鏍煎紡鍛紝鍥犱負 sys 宸茬粡涓?dual 琛ㄥ緩绔嬩簡鎵鏈夌敤鎴峰潎鍙嬌鐢ㄧ殑鍒悕銆?
涓騫寸殑絎竴澶?
SELECT to_date(to_char(SYSDATE,'yyyy')||'-01-01','yyyy-mm-dd' ) FROM dual
瀛e害鐨勭涓澶?
SELECT to_date(to_char(SYSDATE,'yyyy-')|| lpad(floor(to_number(to_char(SYSDATE,'mm'))/3)*3+1,2,'0')|| '-01', 'yyyy-mm-dd') FROM dual
floor 涓哄悜涓嬪彇鏁?
lpad 涓哄悜宸︿嬌鐢ㄦ寚瀹氱殑瀛楃鎵╁厖瀛楃涓詫紝榪欎釜鎵╁厖瀛楃涓茶嚦2浣嶏紝涓嶈凍鐨勮ˉ'0'銆?
褰撳ぉ鐨勫崐澶?
SELECT trunc(SYSDATE)+1-1/24/60/60
FROM dual
trunc 鏄皢 sysdate 鐨勬椂闂撮儴鍒嗘埅鎺夛紝鍗蟲椂闂撮儴鍒嗗彉鎴?00:00:00
Oracle涓棩鏈熷姞鍑忔槸鎸夌収澶╂暟榪涜鐨勶紝鎵浠?+1-1/24/60/60 浣挎椂闂撮儴鍒嗗彉鎴愪簡 23:59:59銆?
Oracle 8i 涓粎鏀寔鏃墮棿鍒扮錛?i浠ヤ笂鍒欐敮鎸佸埌 1/100000000 縐掋?
涓婁釜鏈堢殑鏈鍚庝竴澶?
SELECT trunc(last_day(add_months(SYSDATE,-1)))+1-1/24/60/60 FROM dual
add_months 鏄湀浠藉姞鍑忓嚱鏁般?
last_day 鏄眰璇ユ湀浠界殑鏈鍚庝竴澶╃殑鍑芥暟銆?
鏈勾鐨勬渶鍚庝竴澶?
SELECT trunc(last_day(to_date(to_char(SYSDATE,'yyyy')||'-12-01','yyyy-mm-dd')) )+1-1/24/60/60 FROM dual
鏈湀鐨勬渶鍚庝竴澶?
select trunc(last_day(sysdate))+1-1/24/60/60 from dual
鏈湀鐨勭涓涓槦鏈熶竴
SELECT next_day( to_date(to_char(SYSDATE,'yyyy-mm')||'-01','yyyy-mm-dd'), '鏄熸湡涓' ) FROM dual
next_day 涓鴻綆椾粠鎸囧畾鏃ユ湡寮濮嬬殑絎竴涓鍚堣姹傜殑鏃ユ湡錛岃繖閲岀殑'鏄熸湡涓'灝嗘牴鎹甆LS_DATE_LANGUAGE鐨勮緗◢鏈変笉鍚屻?
鍘繪帀鏃跺垎縐?
select trunc(sysdate) from dual
鏄劇ず鏄熸湡鍑?
SELECT to_char(SYSDATE,'Day') FROM dual
鍙栧緱鏌愪釜鏈堢殑澶╂暟
SELECT trunc(last_day(SYSDATE))- to_date(to_char(SYSDATE,'yyyy-mm')||'-01','yyyy-mm-dd')+ 1 FROM dual
鍒ゆ柇鏄惁闂板勾
SELECT decode( to_char(last_day(to_date(to_char(SYSDATE,'yyyy')||'-02-01','yyyy-mm-dd')),'dd'), '28','騫沖勾','闂板勾' ) FROM dual
涓涓搴﹀灝戝ぉ
SELECT last_day(to_date(to_char(SYSDATE,'yyyy-')|| lpad(floor(to_number(to_char(SYSDATE,'mm'))/3)*3+3,2,'0')|| '-01','yyyy-mm-dd')) - to_date(to_char(SYSDATE,'yyyy-')|| lpad(floor(to_number(to_char(SYSDATE,'mm'))/3)*3+1,2,'0')|| '-01','yyyy-mm-dd') +1FROM dual
1銆乤dd_months()鐢ㄤ簬浠庝竴涓棩鏈熷煎鍔犳垨鍑忓皯涓浜涙湀浠?
SQL> select add_months(sysdate,12) "Next Year" from dual;
2銆乧urrent_date()榪斿洖褰撳墠浼氭斁鏃跺尯涓殑褰撳墠鏃ユ湡
SQL> select sessiontimezone,current_date from dual;
3銆乧urrent_timestamp()浠imestamp with time zone鏁版嵁綾誨瀷榪斿洖褰撳墠浼氭斁鏃跺尯涓殑褰撳墠鏃ユ湡
4銆乨btimezone()榪斿洖鏃跺尯
varchar_value:=dbtimezone
SQL> select dbtimezone from dual;
5銆乪xtract()鎵懼嚭鏃ユ湡鎴栭棿闅斿肩殑瀛楁鍊?
SQL> select extract(month from sysdate) "This Month" from dual;
SQL> select extract(year from add_months(sysdate,36)) "3 Years Out" from dual;
SQL>
6銆乴ast_day()榪斿洖鍖呭惈浜嗘棩鏈熷弬鏁扮殑鏈堜喚鐨勬渶鍚庝竴澶╃殑鏃ユ湡
date_value:=last_day(date_value)
SQL> select last_day(date'2000-02-01') "Leap Yr?" from dual;
SQL> select last_day(sysdate) "Last day of this month" from dual;
SQL>
7銆乴ocaltimestamp()榪斿洖浼氳瘽涓殑鏃ユ湡鍜屾椂闂?
timestamp_value:=localtimestamp
SQL> select localtimestamp from dual;
SQL> select localtimestamp,current_timestamp from dual;
SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SS AM') "SYSDATE" SQL>
8銆乵onths_between()鍒ゆ柇涓や釜鏃ユ湡涔嬮棿鐨勬湀浠芥暟閲?
number_value:=months_between(date_value,date_value)
SQL> select months_between(sysdate,date'1971-05-18') from dual;
SQL> select months_between(sysdate,date'2001-01-01') from dual;
9銆乶ext_day()緇欏畾涓涓棩鏈熷鹼紝榪斿洖鐢辯浜屼釜鍙傛暟鎸囧嚭鐨勬棩瀛愮涓嬈″嚭鐜板湪鐨勬棩鏈熷鹼紙搴旇繑鍥炵浉搴旀棩瀛愮殑鍚嶇О瀛楃涓詫級
]]>
nvl
鍙︿竴涓湁鍏崇殑鏈夌敤鏂規硶
declare
i integer
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1
榪欐牱灝卞彲浠ユ妸鑾峰緱鐨勫悎璁″煎瓨鍌ㄥ埌鍙橀噺i涓紝濡傛灉鏌ヨ鐨勫間負null灝辨妸瀹冪殑鍊艱緗負榛樿鐨? 銆?br />
GREATEST
鍔熻兘: 闆嗗悎涓殑鏈澶у?
鎬濊礬: 紜畾絎竴涓弬鏁版槸浠涔堢被鍨?涔嬪悗鎵鏈夌殑鍙傛暟鍏ㄩ儴杞崲鎴愯繖縐嶇被鍨嬪啀姣旇緝.
娉ㄦ剰:
(1) 鍙傛暟鍙兘鏄泦鍚?涓嶈兘鏄瓙鏌ヨ.
(2) 騫朵笖鍙夋嫨絎竴涓瓧絎︽渶澶х殑.
鍑芥暟:
FUNCTION GREATEST (pattern NUMBER) return NUMBER;
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
function GREATEST (pattern VARCHAR2 CHARACTER SET ANY_CS)
return VARCHAR2 CHARACTER SET pattern%CHARSET;
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
function GREATEST (pattern DATE) return DATE;
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
渚嬪瓙:
SELECT GREATEST(SELECT gb.set_of_books_id FROM gl_sets_of_books gb)
FROM dual
--ORA-00936: missing expression
SELECT GREATEST(100,1,3,11)FROM dual;
--100
SELECT GREATEST('100',1,3,11)FROM dual;
--3
SELECT GREATEST('a',1,3,11)FROM dual;
--'a'
SELECT GREATEST('abc','bcd','cde','cda')FROM dual;
--'cde'
--榪欓噷鍙槸
SELECT GREATEST(100,1,'3',11)FROM dual;
--100
SELECT GREATEST(100,1,3,'a')FROM dual;
--ORA-01722: invalid number
--鏃犳晥鏁板瓧
start with……connect by