在今天的工作中,前輩教我要把一個sql語句要改寫。...AND rt.begin_time <= now( ) AND rt.end_time >= now( ) ...
改為AND TO_CHAR(rt.begin_time, 'MMDD') <= TO_CHAR(CURRENT_DATE, 'MMDD') AND TO_CHAR(rt.end_time, 'MMDD') >= TO_CHAR(CURRENT_DATE, 'MMDD')
其中的to_char函式的作用很多,特此記錄一下。
-
to_char函式可以將時間日期按照指定的格式輸出
需要注意的是得到的是字串,而非date型別。
例如
select sysdate,to_char(sysdate,'yyyymmdd hh24:mi:ss')from dual;
輸出結果為
2024/11/08 01:01:25 20240108 01:01:25
-
用to_char()可以得到日期中的年、月、日、時、分
select sysdate,to_char(sysdate,'yyyy')from dual;
select sysdate,to_char(sysdate,'mm')from dual;
輸出結果為
2024/11/08 01:05:14 2024
2024/11/08 01:05:14 11
-
多種日期格式:
YYYY:四位表示的年份 YYY,YY,Y:年份的最後三位、兩位或一位,預設為當前世紀 MM:01~12的月份編號 MONTH:九個字元表示的月份,右邊用空格填補 MON:三位字元的月份縮寫 WW:一年中的星期 D:星期中的第幾天 DD:月份中的第幾天 DDD:年所中的第幾天 DAY:九個字元表示的天的全稱,右邊用空格補齊 HH,HH12:一天中的第幾個小時,12進製表示法 HH24:一天中的第幾個小時,取值為00~23 MI:一小時中的分鐘 SS:一分鐘中的秒 SSSS:從午夜開始過去的秒數