寫法有很多種,例如下面的:\x0d\x0a方法一:select * from dual where time between to_date('2012-06-18 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2012-06-18 23:59:59','yyyy-mm-dd hh24:mi:ss');\x0d\x0a方法二:select * from dual where to_char(time,'yyyy-mm-dd')='2012-06-18';\x0d\x0a方法三:select * from dual where trunc(time)=to_date('2012-06-18','yyyy-mm-dd');\x0d\x0a當然樓主也可以按上面的先轉換下日期的顯示格式再查詢?nèi)?,都可以的,呵呵?。。?/p>
創(chuàng)新互聯(lián)專注于吉林企業(yè)網(wǎng)站建設,響應式網(wǎng)站,商城系統(tǒng)網(wǎng)站開發(fā)。吉林網(wǎng)站建設公司,為吉林等地區(qū)提供建站服務。全流程按需定制制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
這里有一個簡單判斷日期的方法。
其實日期看來很簡單,但各國表示各不相同.
1/13/2005
2005.10.25
23-05-2005
等都是日期
這還不包括類似20051225等方式
/*
最初由?jackywood?發(fā)布
個人寫的一個判斷是否是正確日期字符串的函數(shù),?請大家點評
函數(shù)參數(shù)?str?:?需要轉換為日期的字符串,?fmt?:?日期格式,?nls?:?日期字符串的語言
返回值:?類型為date,?如果字符串不符合轉換格式的要求或是非法的日期字符串,?返回值為null,?反之,?返回轉換后的date值
*/
CREATE?OR?REPLACE?FUNCTION?isdate(str?varchar2,?fmt?varchar2?default?null,?nls?varchar2?default?null)
RETURN?date
IS
v_date?date;
v_fmt?varchar2(100)?default?fmt;
v_nls?varchar2(100)?default?nls;
BEGIN
IF?fmt?IS?NULL?THEN
SELECT?value
INTO?v_fmt
FROM?v$nls_parameters
WHERE?parameter='NLS_DATE_FORMAT';
END?IF;
IF?nls?IS?NULL?THEN
SELECT?'NLS_DATE_LANGUAGE='''||value||''''
INTO?v_nls
FROM?v$nls_parameters
WHERE?parameter='NLS_DATE_LANGUAGE';
END?IF;
v_date?:=?to_date(str,?v_fmt,?v_nls);
RETURN?v_date;
EXCEPTION
WHEN?OTHERS?THEN
/*如果你希望看到報錯,?就把下面的注釋行打開*/
--raise;
RETURN?NULL;
END;
/
oracle中有“判定字符串是否符合日期格式”的函數(shù),解決方法如下:
1、首先除了sysdate函數(shù)外oracle中還包含其它日期函數(shù),如add_months(日期,數(shù)字)在指定的日期上加入指定的月數(shù),求出新的日期。
2、除此之外還有next_day(日期,星期一)函數(shù),計算當前日期的下個星期一時間。
3、還有l(wèi)ast_day(日期),用來求出指定日期所在月份的最后一天。
4、還有另外一個months_between(日期,指定日期),可以計算出兩個日期相差的月數(shù)。
5、如果給出的指定日期是字符串,在計算的時候就需要先將字符串進行轉換成日期然后再進行計算,使用to_date(日期,'格式'),就完成了。
很簡單啊,如果是一個時間段,選取其最早時間點和最遲時間點:timemin,timemax,參考的sql語句為select * from tbl where time0 between timemin and timemax
如果是兩個時間段,那么分別選取兩個時間段的最早時間點和最遲時間點,timemin1,timemax1,timemin2,timemax2,參考的sql語句是 select * from tbl where (time0 between timemin1 and timemax1) or (time0 between timemin2 and timemax2)
以此類推。
如果這個表中填寫時間的字段是varchar型的,那么比較的時候
select * from table a WHERE a.date=to_char(SYSDATE,'yyyymmdd');
如果這個表中填寫時間的字段是date型的,那么比較的時候
select * from table a WHERE a.datesysdate-1 and a.date=sysdate;