天天看點

to_char函數不要使用hh格式

昨天檢查程式,那些程式員一個小小的錯誤,他們把日期轉換成字元串作為記錄主關鍵字的一部分,我當時看了感覺應該使用hh24格式。

例子如下:

 => select sysdate a ,to_char(sysdate,'yyyymmddhh') b ,to_char(sysdate-16/24,'yyyymmddhh') c from dual ;

SYSDATE             TO_CHAR(SY TO_CHAR(SY

------------------- ---------- ----------

2010-05-21 16:41:23 2010052104 2010052112

可以發現hh的範圍實際上是1-12.如果是0點某個時刻,實際上顯示的是12.

這個是很容易判斷出錯!

繼續閱讀