日期:2014-05-17  浏览次数:20839 次

SQL语句中时间字符串如何运算? 急!
有这么一条Sql,实现把2008-4-30这一天 9:00:00以后登陆的人的状态置为迟到:
--------------
UPDATE OBT_CHECK SET ISFLAG='迟到' 
WHERE LOGIN_TIME BETWEEN to_date('2008-04-30 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND to_date('2008-04-30 23:59:59', 'yyyy-mm-dd hh24:mi:ss') 
AND LOGIN_TIME>to_date('2008-04-30 9:00:00', 'yyyy-mm-dd hh24:mi:ss')
----------
现在想实现的是把今天9:00:00以后登陆的人的状态置为迟到该如何实现?
我写了一条Sql,但是不对,如下:
----------
UPDATE OBT_CHECK SET ISFLAG='迟到' 
WHERE LOGIN_TIME BETWEEN TO_DATE(TO_CHAR(SYSDATE)+'00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND TO_DATE(TO_CHAR(SYSDATE)+' 23:59:59', 'yyyy-mm-dd hh24:mi:ss') 
AND LOGIN_TIME>TO_DATE(TO_CHAR(SYSDATE)+' 9:00:00', 'yyyy-mm-dd hh24:mi:ss')

------解决方案--------------------
几个错误
to_char日期类型的,要跟格式的
字符串连接要用||不是+
------解决方案--------------------
UPDATE OBT_CHECK SET ISFLAG='迟到' 
WHERE LOGIN_TIME>=trunc(sysdate)+9/24