這個屬于oracle時間函數(shù)的用法
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站制作、寧強網(wǎng)絡(luò)推廣、小程序定制開發(fā)、寧強網(wǎng)絡(luò)營銷、寧強企業(yè)策劃、寧強品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供寧強建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:jinyejixie.com
在oracle里,日期格式是一種特殊的東西
這里有一個日期轉(zhuǎn)換函數(shù)
select to_char(日期,'yyyy-mm-dd hh24:mi:ss') from tablename;
這里的to_char就是將日期型轉(zhuǎn)換成字符型的一個函數(shù),轉(zhuǎn)換成的格式就是
2010-08-23 17:51:20
當(dāng)然你可以將這個日期轉(zhuǎn)換成其他,如:
select to_char(日期,'yyyy-mm-dd') from tablename;
查出來的結(jié)果2010-08-23
所以你要根據(jù)這個日期來查東西就可以這么用
select * from tablename where to_char(日期,'yyyymmdd')between '20100801' and '20100823'
這個就是查日期8月1日到8月23日的數(shù)據(jù)
select * from tablename where to_char(日期,'yyyymmdd') = '20100801'
這個就是查8月1日的數(shù)據(jù)
其他不懂的你再問吧
-------補充------
你把你寫的東西粘貼一下,也好幫你分析啊
你后邊的" + model.Csrq + "參數(shù)傳進來的是什么東西?
---------補充2-------
'yyyy-mm-dd 24hi:mi:ss'
這個地方錯了,應(yīng)改成
'yyyy-mm-dd hh24:mi:ss'
不是24hi
oracle的if語句采用decode函數(shù)。
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value 等于if1時,DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個if值,則返回else。
Oracle數(shù)據(jù)庫是對標(biāo)準(zhǔn)sql語言的過程化擴展,因此產(chǎn)生了pl/sql語言。其中的if語句大量使用使得程序模塊化的功能方便實用?,F(xiàn)在要討論的是if語句的基本使用方法。
連接數(shù)據(jù)庫
請輸入用戶名: ?scott/123456
設(shè)置環(huán)境變量
SQL set serveroutput on
定義兩個字符串變量,然后賦值,接著使用if……then語句比較兩個字符串變量的長度,并輸出比較結(jié)果。
declare
a varchar(10);
b varchar(10);
begin
a:='beijing';
b:='guangdong';
if length(a)length(b)
then dbms_output.put_line('ab');
end if;
end;
過if……then……else語句實現(xiàn)只有年齡大于等于56歲,才可以申請退休,否則程序會提示不可以申請退休。
declare
a number(10);
begin
a:=x;
if a=56
then dbms_output.put_line('可以申請退休');
else dbms_output.put_line('不可以申請退休');
end if;
end;
制定一個月份數(shù)值,然后使用if……then……elsif語句判斷它所屬的季節(jié),并輸出季節(jié)信息。
declare
mon number(10);
begin
mon:=x;
if mon=3 or mon=4 or mon=5
then dbms_output.put_line('春節(jié)');
elsif mon=6 or mon=7 or mon=8 then dbms_output.put_line('夏季');
elsif mon=9 or mon=10 or mon=11 then dbms_output.put_line('秋季');
elsif mon=12 or mon=1 or mon=2 then dbms_output.put_line('冬季');
end if;
end;
制定一個季度數(shù)值,然后使用case語句判斷它所包含的月份信息并輸出。
declare
ss number(10);
begin
ss:=x;
case
when ss=1 then dbms_output.put_line('包含月份3,4,5');
when ss=2 then dbms_output.put_line('包含月份6,7,8');
when ss=3 then dbms_output.put_line('包含月份9,10,11');
when ss=4 then dbms_output.put_line('包含月份12,1,2');
end case;
end;
可以用oracle自帶的正則表達式函數(shù)REGEXP_REPLACE把數(shù)字全部取出來,然后計算數(shù)字的長度是否等于這個字段的長度,如果等于的話說明這個值全部是數(shù)字,如果不等于的話說明值里面包含非數(shù)字,測試語句如下:
SELECT(REGEXP_REPLACE('LSS12345', '[^0-9]')) FROM DUAL;---取出值里面的全部數(shù)字
SELECT LENGTH('LSS12345'),LENGTH(REGEXP_REPLACE('LSS12345', '[^0-9]')) FROM DUAL; ---查詢出字段的長度和字段內(nèi)數(shù)字的長度
SELECT* FROM DUAL ?WHERE LENGTH('LSS12345') = LENGTH(REGEXP_REPLACE('LSS12345', '[^0-9]')) ; ?----查詢這個字段所有的純數(shù)字列
簡單的:一條語句搞定,SqlPlus里面select decode(length(replace(translate('字符串的值','0123456789.',' '),' ','')),0,'is number','is not a number') from dual; 麻煩點的:寫function在oracle數(shù)據(jù)庫中,create or replace function f_str_or_num(str varchar2) return varchar2 is
2 v_num number;
3 v_return varchar2(60);
4 begin
5 v_num:=to_number(str);
6 v_return:=str||' is a number string!';
7 return v_return;
8 exception when others then
9 v_return:=str||' is not a number string!';
10 return v_return;
11 end f_str_or_num; 然后調(diào)用select f_str_or_num('字符串的值) from dual;
oracle判斷為空是用is
null不是=null;
在oracle中=null一直都是返回false的。
另外最好加上exception判斷:
IF
:new.s_ID
IS
NULL
THEN
BEGIN
SELECT
c_id
into
:new.s_ID
from
classs
where
c_sid=:NEW.s_cid;
EXCEPTION
WHEN
no_data_found
THEN
SELECT
INTO
:new.s_ID
FROM
dual;
--或者其他操作
END;
END
IF;
當(dāng)在classs表中沒有找到對應(yīng)的記錄時不至于出錯,看你要怎么設(shè)計咯。
當(dāng)前文章:oracle里面怎么判斷,oracle怎么判斷游標(biāo)為空
文章出自:http://jinyejixie.com/article16/dsseodg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、定制網(wǎng)站、App設(shè)計、Google、用戶體驗、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)