sql 時間條件查詢

2021-09-26 09:23:14 字數 1443 閱讀 6497

select * from table t where t.time >= to_date(aaaa,'yyyy-mm-dd hh24:mm:ss') and t.timeaaaa,bbbb是字串型別 比如:aaaa = '2018-04-19 00:00:00' bbbb = '2018-04-20 00:00:00'

to_date()中yyyy-mm-dd hh24:mm:ss 意思把aaaa字串轉換成 yyyy-mm-dd hh24:mm:ss這樣的時間格式

select * from v$session where logon_time>=to_date('2018-04-19 00:00:00','yyyy-mm-dd hh24:mi:ss') and logon_timeselect * from table t where t.time >= trunc(sysdate) and t.time < trunc(sysdate+1)

sysdate是oracle資料庫的系統當前時間 sysdate是時間格式的 trunc是oracle的擷取函式 trunc(sysdate) 擷取的結果是當前時間的yyyy-mm-dd 擷取後也是如期型別

select * from v$session where logon_time>=trunc(sysdate) and logon_timeselect * from table t where to_char(t.time,'yyyy-mm-dd hh24:mm:ss') >= aaaa and to_char(t.time,'yyyy-mm-dd hh24:mm:ss')to_char()中t.time是表裡的時間字段,先把t.time時間格式轉換成字串'yyyy-mm-dd hh24:mm:ss' 然後再和字串aaaa,bbbb比較

select * from v$session where to_char(logon_time,'yyyy-mm-dd hh24:mi:ss')>='2018-04-19 00:00:00' and to_char(logon_time,'yyyy-mm-dd hh24:mi:ss')<'2018-04-20 00:00:00';

to_date()和to_char()的區別在於to_date()把查詢條件字串先轉換成時間格式,to_char()把待查詢的字段先轉換成字串然後再和查詢條件字串做比較

select * from dual where to_char(sysdate, 'yyyy-mm-dd') = '2019-04-04';

select * from dual where substr(sysdate, 0, 10) = to_date('2019-04-04', 'yyyy-mm-dd');//substr(sysdate,0,10)擷取後仍為日期型別

select * from dual where sysdate > to_date('2019-04-04', 'yyyy-mm-dd');

參考位址

sql 時間條件查詢

select from table t where t.time to date aaaa,yyyy mm dd hh24 mm ss and t.timeaaaa,bbbb是字串型別 比如 aaaa 2018 04 19 00 00 00 bbbb 2018 04 20 00 00 00 to d...

SQL 條件查詢

按條件表示式 其中 意思一樣,都是不等於,建議用 邏輯表示式 and or not 模糊查詢 like between and in is null 檢視name第3個字元為n,第五個為z的記錄 select from user where name like n z between and 可以提...

SQL多條件查詢子查詢SQL多條件查詢子查詢

多條件搜尋時where 1 1並不高效,如果使用這種方法,在資料庫中會做全表查詢 對每行資料都進行掃瞄比對 會無法使用索引等優化查詢的策略,建立的索引會暫時失效。case函式 case必須和end一起使用,下接when then select 數學成績 case when math 100 then...