to_char 是把日期或數字轉換為字符串
to_date 是把字符串轉換為數據庫中得日期類型
還記得以前初次接觸oracle時對一些函數還不是很熟悉,老是弄錯,比如在mysql中可以運行,但在oracle中就一直報錯,也找不到具體的原因就會很煩惱,特別是小組里mysql和oracle混用的情況下,
如下sql在oracle中就會報錯,而在mysql中就正常運行,后來才知道是兩種庫的校驗方式不同
select t.create_time,t.* from td_f_opt_201908 t where t.create_time > '20190813';
具體原因是這樣的:‘20190813’是屬於字符串,在oracle中需要進行轉換成日期形式,此處用to_date()函數,如下:
select T.CREATE_TIME,T.* from TD_F_ORDER_KFK T where T.create_time > to_date('2019-08-13','yyyy-MM-dd hh24:mi');
另一個日期函數to_char(),一般用在mybatis等持久層框架中,因為查出的數據默認是字符串,所以需要轉換成我們需要的日期格式,不然就會在頁面顯示出很尷尬的情況,到時候熱心的測試姐姐又要找你聊天了,具體用法如下: