我没有在表中具有正确的时间戳记录;是否可以删除1天前的日志?如何删除其插入1天前
我有列名作为SESSION_IN这基本上是一个数据类型VARCHAR,并且该值会像
2013-10-15 02:10:27.883;1591537355
是否有任何方式后修剪的数量;是否有可能与“sysdate”标识符进行比较?
该SP应该比较所有与当前日期时间的会话ID,如果是旧的然后用1一天,它应该删除。
我没有在表中具有正确的时间戳记录;是否可以删除1天前的日志?如何删除其插入1天前
我有列名作为SESSION_IN这基本上是一个数据类型VARCHAR,并且该值会像
2013-10-15 02:10:27.883;1591537355
是否有任何方式后修剪的数量;是否有可能与“sysdate”标识符进行比较?
该SP应该比较所有与当前日期时间的会话ID,如果是旧的然后用1一天,它应该删除。
可以igonre一部分时间和日期转换成需要的格式财产以后这样
SYSDATE - to_date('date_col','YYYY-DD-MM')
然后就可以进行操作。
希望下面的查询可以帮助你:
Select Convert(Datetime,Substring('2013-10-15 02:10:27.883;1591537355',1,23)), DateDiff(dd,Convert(Datetime,Substring('2013-10-15 02:10:27.883;1591537355',1,23)),Getdate())
非常感谢您响应:) 因为我想这个功能对于Oracle 10g,其抛出的错误: ORA-00923:FROM关键字未找到预期 请建议我有什么我需要改变? –
对不起不知道甲骨文在MSSQL我的工作。 – Snehal
其确定。感谢你这么多:) –
使用子字符串函数提取记录中的日期时间部分,然后用转换为datetime它转换为日期时间,最后用DATEDIFF检查它是否是昨天插入。使用所有这些caluses在
DELETE FROM table
WHERE ___ query
对于Oracle,你可以使用这样的事情:
SELECT
TRUNC(to_timestamp(SUBSTR('2013-10-15 02:10:27.883;1591537355',1,
(
SELECT
instr('2013-10-15 02:10:27.883;1591537355', ';')-1
FROM
dual
)
), 'YYYY-MM-DD HH:MI:SS.FF'))
FROM
dual;
它给你只是你输入的字符串的日期部分。只需减去最后登录的天数即可。
感谢Pravin,我得到“ORA-01830:日期格式图片在转换整个输入字符串之前结束”错误。 –
选择TRUNC(SYSDATE - (TO_DATE(SUBSTR( '2013-10-15 02:10:27.883; 1591537355',1,10), 'YYYY-MM-DD')))从双 –
上述查询是给我38天。希望这是你想要的 –