1. 程式人生 > >Oracle to_char函式的使用

Oracle to_char函式的使用

Oracle 版本

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod

使用場景

在oracle中儲存的日期型別為Date.
精確到秒鐘.
當儲存的時間只精確到天時, 用String型別的java欄位接收該值,會導致秒分時全部為0
例如 endtime欄位為Date型別.

用java的String型別接收. 會自動把秒分時補為00:00:00

解決方案

使用to_char函式, 可以指定最終想要的日期格式的型別.
類似於java中的SimpleDateFormat.
例如在上面的例子中, 只想要查詢出來的結果精確到天.那麼在sql中使用如下

select 
    to_char(ENDTIME,'YYYY-MM-DD') ENDTIME 
        FROM tablename

使用的方法如上. 把要查詢的欄位傳入to_char函式的第一個引數中.
第二個引數為指定日期的格式.
只需要查年月日,則指定為YYYY-MM-DD.
經過這樣的sql處理後, 在java中用string 型別的接收.日期的格式如下.

### 其他時間的格式
在sql中 , yyyy-mm-dd hh24:mi:ss 中的字母, 大小寫均可.
查詢24小時格式的, 精確到秒的
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;


![](https://img-blog.csdnimg.cn/20181230144229747.png)
12小時格式的
select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss')from dual;

參考文章
https://blog.csdn.net/dtjiawenwang88/article/details/73295181
https://blog.csdn.net/tanzongbiao/article/details/82528267