昨天检查程序,那些程序员一个小小的错误,他们把日期转换成字符串作为记录主关键字的一部分,我当时看了感觉应该使用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.
这个是很容易判断出错!
例子如下:
=> 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.
这个是很容易判断出错!