我在桌子上没有合适的时间戳;是否可以删除1天的日志?
我的列名为SESSION_IN,基本上是VARCHAR数据类型,值类似
2013-10-15 02:10:27.883;1591537355
有没有办法修剪数字;是否可以与“sysdate”标识符进行比较?
此SP应将所有会话ID与当前日期时间进行比较,如果它早于1天,则应删除。
答案 0 :(得分:0)
您可以忽略时间部分并将日期转换为所需的格式
SYSDATE - to_date('date_col','YYYY-DD-MM')
然后你就可以进行操作了。
答案 1 :(得分:0)
使用Substring函数从记录中提取日期时间部分,然后使用convert to datetime将其强制转换为datetime,然后最后使用datediff检查它是否是昨天插入的。
中使用所有这些calusesDELETE FROM table
WHERE ___ query
答案 2 :(得分:0)
对于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;
它只为您提供输入字符串的日期部分。只需减去最后要记录的天数。
答案 3 :(得分:-1)
希望以下查询可以帮助您:
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())