時間日期字段在數據庫底層都是以時間戳的形式存儲的,日期比較其實就簡單的轉換成了時間戳的比較, 也就是數字的比較
成都創新互聯公司主營平潭網站建設的網絡公司,主營網站建設方案,app開發定制,平潭h5微信小程序開發搭建,平潭網站營銷推廣歡迎平潭等地區企業咨詢
時間戳就是 格林威治時間1970年01月01日00時00分00秒到指定日期時間之間的秒數
2012-01-11 00:00:00的時間戳就是1326211200比較時間字段,底層實際比較的就是這個數字的時間戳
兩個日期型直接相減是天數,select to_date(' 2012-01-08','yyyy-mm-dd')-to_date('2010-12-12','yyyy-mm-dd') from dual
如果涉及年數,你要考慮閏年非閏年。。。。一般不會比較年,大致的話你就除365天就是了。
這個屬于oracle時間函數的用法
在oracle里,日期格式是一種特殊的東西
這里有一個日期轉換函數
select to_char(日期,'yyyy-mm-dd hh24:mi:ss') from tablename;
這里的to_char就是將日期型轉換成字符型的一個函數,轉換成的格式就是
2010-08-23 17:51:20
當然你可以將這個日期轉換成其他,如:
select to_char(日期,'yyyy-mm-dd') from tablename;
查出來的結果2010-08-23
所以你要根據這個日期來查東西就可以這么用
select * from tablename where to_char(日期,'yyyymmdd')between '20100801' and '20100823'
這個就是查日期8月1日到8月23日的數據
select * from tablename where to_char(日期,'yyyymmdd') = '20100801'
這個就是查8月1日的數據
其他不懂的你再問吧
-------補充------
你把你寫的東西粘貼一下,也好幫你分析啊
你后邊的" + model.Csrq + "參數傳進來的是什么東西?
---------補充2-------
'yyyy-mm-dd 24hi:mi:ss'
這個地方錯了,應改成
'yyyy-mm-dd hh24:mi:ss'
不是24hi
是存儲過程里面的 IF/ELSE ? 還是簡單的 DECODE ?
SQL DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 100;
5
6 IF testvalue 100 THEN
7 dbms_output.put_line( '100+' );
8 ELSIF testvalue = 100 THEN
9 dbms_output.put_line( '100' );
10 ELSE
11 dbms_output.put_line( '100-' );
12 END IF;
13
14 END;
15 /
100
PL/SQL procedure successfully completed.
SQL SELECT
2 DECODE(GROUPING(sale_item), 1, 'ALL', sale_item) AS iten,
3 SUM(sale_money) AS money
4 FROM
5 sale_report
6 GROUP BY
7 ROLLUP(sale_item);
ITEN MONEY
------ ----------
A 733285
B 2382
C 5738
ALL 741405
用to_char函數即可。
如emp表中數據如下:
要查詢hiredate的日期為1981年1月1日到1981年5月1日之間的數據,可用如下語句:
select * from emp where to_char(hiredate,'yyyy-mm-dd') between '1981-01-01' and '1981-05-01';
文章標題:oracle怎么判斷瑞年 如何判斷是不是瑞年
文章地址:http://m.kartarina.com/article18/hgjddp.html
成都網站建設公司_創新互聯,為您提供動態網站、網站收錄、營銷型網站建設、企業建站、App設計、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯