Oracle兩個日期型別欄位怎麼比較大小

2022-03-07 06:55:57 字數 4337 閱讀 1530

1樓:匿名使用者

oracle中date的型別可以直接使用<, >, <>進行比較,字串型別可以先轉換成date型別在進行比較

select case

when to_date('2017-01-20', 'yyyy-mm-dd') > sysdate

then 'true'

else 'false' end

from dual

2樓:情又獨中

直接用運算子比較

date1>date2

oracle資料庫裡兩個字元型的日期資料怎樣比較?

3樓:匿名使用者

select * from 表名 where to_date(jssj,'yyyymmddhh24miss')-

to_date(kssj,'yyyymmddhh24miss')>900/24/60/60

解釋下:那兩個日期要轉成日期型來做比較

條件是大於15分鐘,正常兩個日期減得到的是天所以要用900秒除24小時,除60分鐘,除60秒,將這個15分鐘轉成天

4樓:匿名使用者

更正下,原來把 to_date 的格式串寫錯了,再加上您給的新的條件:

select * from tab_namewhere

(to_date('kssj','yyyymmddhi24miss') >

to_date('20100825000000','yyyymmddhi24siss'))

and(

to_date('jssj','yyyymmddhi24miss') -

to_date('jssj','yyyymmddhi24miss'))*24*60 >= 15;

5樓:匿名使用者

select * from tablename

where (to_date(jssj,'yyyymmddhh24miss')-to_date(kssj,'yyyymmddhh24miss'))*24*60>15

tablename請用你自己的表名替換

在oracle資料庫中怎麼將日期與時間兩個欄位合併後與另一個表中的時間欄位進行比較大小

6樓:匿名使用者

to_date(to_char(tbale1.date, 'yyyymmdd') || to_char(tbale1.time, 'hh24miss'), 'yyyymmddhh24miss') > to_date(table2.

datetime, 'yyyymmddhh24miss')

sql語句 怎樣比較兩個日期的大小,簡單一點的

7樓:匿名使用者

慣例,在等號左邊儘量不要有對欄位的運算,所以一般用法有:

1、判斷其是否在某個日期區間:

where checkdate between '2013-01-01' and '2013-01-31'

這個方法也可用於加幾天是多少,或減幾天是多少:

把起迄日期引數化,原checkdate要加的,那就變成@begindate加,減也同理~

2、判斷其是否大於某天:

where checkdate >'2013-01-01' 或大於等於:where checkdate >='2013-01-01'

小於某天

where checkdate <'2013-01-01' 或小於等於:where checkdate <='2013-01-01'

3、判斷其是否等於某天:

如果check欄位不帶時間,只是年月日,那直接等於就可以了;

where checkdate ='2013-01-01'

如果checkdate欄位是攜帶時間的就會有差別;這一點,在上述所有方法中都需要注意

eg:checkdate 實際儲存值可能是: 20130101 08:50:54:000 或 20130101 22:50:54:000

這時直接用上面的等號是抓不到的,因此或改寫成:

where checkdate >= '2013-01-01' and checkdate < '2013-01-02'

當然也可以把'2013-01-01',定義為引數@date datetime

where checkdate >= @date and checkdate < @date+1

不建議在等號左邊使用函式或計算對錶欄位進行計算。

以上是兩個日期的判斷,另外有些日期處理函式可以瞭解一下:

datediff ( datepart , startdate , enddate )

返回指定的 startdate 和 enddate 之間所跨的指定 datepart 邊界的計數(帶符號的整數)。

eg:select datediff(day,'20130101','20130105')

1號到5號相差4天,輸出結果為4

常用的datepart 有:

datepart 縮寫

year yy, yyyy 年

month mm, m 月

day dd, d 日

week wk, ww 周

hour hh 時

minute mi, n 分

second ss, s 秒

dateadd(datepart, number, date)

將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 dt_dbtimestamp 值。number 引數的值必須為整數,而 date 引數的取值必須為有效日期。

eg:select dateadd(day,1,'20130101')

1號加1天就是2號;輸出結果為 『2013-01-02』

number可以是負數就變成減幾天

dateadd(datepart, number, date)

將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 dt_dbtimestamp 值。number 引數的值必須為整數,而 date 引數的取值必須為有效日期。

eg:select datepart(day,'20130101')

返回datepart描述的部分,輸出結果為 1

8樓:year好好學習

select 2>1 into num from dual; oracle

select 2>1 into num; mysql

看這個num就行

9樓:

建議你寫儲存過程吧!sql寫的話用函式會很麻煩的

10樓:匿名使用者

就用大小於號就行了。比如 select * from [mytable] where [mydate] > '2013-01-01'

11樓:威爾恩斯

select datediff(day, '2012-12-30', '2013-01-06')

結果為:7 天

12樓:匿名使用者

sql datediff

13樓:匿名使用者

select case when dateadd(day,6,'2012-12-10')<'2012-12-15' then '2012-12-10' else '2012-12-15' end

oracle中date型別怎麼轉換和比較大小?

14樓:

使用 to_date('2012-04-26','yyyy-mm-dd')

例如:select created from user_objects where created > to_date('2012-04-26','yyyy-mm-dd');

created

10-may-12

10-may-12

05-jun-12

05-jun-12

05-jun-12

15樓:匿名使用者

to_date或者to_char

to_date方法如 c6iz 的回答

to_char方法為

to_char(date欄位,'yyyy-mm-dd')>'2012-04-26'

oracle我取出兩個的欄位,如何用欄位除以欄位?如圖所示

13年回答的是 select sum 222 sum 2 from dual 好像是這樣 我自己沒太懂 19年給的答案是下面 巢狀處理 select aaa bbb from 你的截圖sql語句 oracle update 的時候修改兩個欄位.其中第二個欄位和改過的第一個欄位有關 結果取得是改之前的...

sql中兩個表 表A(欄位a b)和表B(欄位c d)現需

select t0.a,t0.b,t1.c,t1.d,from a t0 inner join b t1 on t0.e t1.e group by t0.a,t0.b,t1.c,t1.d 或者 with t as select t0.a,t0.b,t1.c,t1.d,from a t0 inner...

oracle資料庫裡兩個字元型的日期資料怎樣比較

select from 表名 where to date jssj,yyyymmddhh24miss to date kssj,yyyymmddhh24miss 900 24 60 60 解釋下 那兩個日期要轉成日期型來做比較 條件是大於15分鐘,正常兩個日期減得到的是天所以要用900秒除24小時,...