Heim > Datenbank > MySQL-Tutorial > oracle-20SEP-日期格式转换为9-20,并比较大小

oracle-20SEP-日期格式转换为9-20,并比较大小

WBOY
Freigeben: 2016-06-07 17:25:08
Original
1542 Leute haben es durchsucht

oracle 中不带时分秒的字符串 to_date 转换时间后与带时分秒的date型字段做带等值的比较 (gt;=,lt;=,=)时,由于字符串不带时分

日期格式转换:

SQL> select to_char(to_date('01sep','ddmon','nls_date_language=American'),'mm-dd') from dual;
 
TO_CHAR(TO_DATE('01SEP','DDMON
------------------------------
09-01

比较大小

action层String endDate

mapper层(db中t_o_d.tk_ftda=01sep,varchar2)


  and TO_CHAR(TO_DATE(t_o_d.tk_ftda,'ddmon','nls_date_language=American'),'mm-dd') <= #{endDate,jdbcType=VARCHAR}
 
 

附:

Oracle 用to_char()日期区间比较       

查询两个年份、月份或日期之间的数据

--查询年份

select * from  document_main t where to_char(t.receivedate,'yyyy')>='2010' and to_char(t.receivedate,'yyyy')

--查询月份

select * from  document_main t where to_char(t.receivedate,'yyyy-mm')>='2010-01' and to_char(t.receivedate,'yyyy-mm')

--查询日期

select * from  document_main t where to_char(t.receivedate,'yyyy-mm-dd')>='2010-01-01' and to_char(t.receivedate,'yyyy-mm-dd')

 

oracle 有关时间 比较
oracle 中不带时分秒的字符串 to_date 转换时间后与带时分秒的date型字段做带等值的比较 (>=,

表中huhai_seq_value所有数据

MYDATE
-----------
2009-03-02
2009-03-02
2009-03-02
2009-03-03
2009-03-03
2009-03-03


--sql1:
select hsv.mydate from huhai_seq_value hsv
where hsv.mydate = to_date('2009-03-03','yyyy-mm-dd ');

sql1查询结果:

MYDATE
-----------
2009-03-03
2009-03-03


--sql2:
select hsv.mydate from huhai_seq_value hsv
where to_char(hsv.mydate,'yyyy-mm-dd') = '2009-03-03';

sql查询结果:

MYDATE
-----------
2009-03-03
2009-03-03
2009-03-03

结论:所以在做不带时分秒的日期比较时最好用to_char函数转换后与字符串比较。


用between比较两个时间

select * from tbl_name where issue_time between to_date('2007-04-12 23:59:59','YYYY-MM-DD HH24:MI:SS') and sysdate;

 

 

TO_DATE格式(以时间:2007-11-02 13:45:25为例)

Year:
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
yyyy four digits 四位年 显示值:2007

Month:
mm number 两位月 显示值:11
mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov
month spelled out 字符集表示 显示值:11月,若是英文版,显示november

Day:
dd number 当月第几天 显示值:02
ddd number 当年第几天 显示值:02
dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri
day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday
ddspth spelled out, ordinal twelfth

Hour:
hh two digits 12小时进制 显示值:01
hh24 two digits 24小时进制 显示值:13

Minute:
mi two digits 60进制 显示值:45

Second:
ss two digits 60进制 显示值:25

linux

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage