Sql 在00:05运行查询时,如何获取最近24小时内的记录
如何在过去24小时内获得记录Sql 在00:05运行查询时,如何获取最近24小时内的记录,sql,oracle,Sql,Oracle,如何在过去24小时内获得记录 Select * from TABLE1 where SENTDATE >= SYSDATE - 1 当我在00:05运行上述查询时,它仅在最后五分钟内返回记录。我需要在查询运行后的最后24小时内获取记录 如何在SQL/Oracle中实现这一点 有没有类似的方法 Select * from TABLE1 where SENTDATE >= sysdate - 24 hrs ? 试一试 试一试 通常,sysdate-1也会给出带有时间戳的日期,但如果
Select * from TABLE1 where SENTDATE >= SYSDATE - 1
当我在00:05运行上述查询时,它仅在最后五分钟内返回记录。我需要在查询运行后的最后24小时内获取记录
如何在SQL/Oracle中实现这一点
有没有类似的方法
Select * from TABLE1 where SENTDATE >= sysdate - 24 hrs ?
试一试
试一试
通常,sysdate-1也会给出带有时间戳的日期,但如果您面临问题,则可以应用以下条件-
SELECT *
FROM Table1
WHERE Sentdate >= To_Date(To_Char((SYSDATE - 1), 'YYYYMMDD') || ' ' ||
To_Char(SYSDATE, 'HH24:MI:SS'),
'YYYYMMDD HH24:MI:SS')
通常,sysdate-1也会给出带有时间戳的日期,但如果您面临问题,则可以应用以下条件-
SELECT *
FROM Table1
WHERE Sentdate >= To_Date(To_Char((SYSDATE - 1), 'YYYYMMDD') || ' ' ||
To_Char(SYSDATE, 'HH24:MI:SS'),
'YYYYMMDD HH24:MI:SS')
尝试使用DateDIFF()之类的函数:
从表1中选择*其中DateDIFF(分钟、SENTDATE、SYSDATE)<1440
尝试使用DateDIFF()之类的函数:
从表1中选择*其中DateDIFF(分钟、SENTDATE、SYSDATE)<1440
在5分钟后运行它表明您正在寻找“昨天”,即:
sentdate >= trunc(sysdate)-1 and
sentdate < trunc(sysdate)
sentdate>=trunc(sysdate)-1和
sentdate
如果您确实想要最后24小时的确切时间,那么:
sentdate >= sysdate-1 and
sentdate < sysdate
sentdate>=sysdate-1和
sentdate
或:
sentdate>sysdate-1和
sentdate=and在5分钟后运行它表明您正在寻找“昨天”,即:
sentdate >= trunc(sysdate)-1 and
sentdate < trunc(sysdate)
sentdate>=trunc(sysdate)-1和
sentdate
如果您确实想要最后24小时的确切时间,那么:
sentdate >= sysdate-1 and
sentdate < sysdate
sentdate>=sysdate-1和
sentdate
或:
sentdate>sysdate-1和
sentdate=andSYSDATE-1
是“SYSDATE-24小时”。可能您的SENTDATE
没有时间部分(即所有记录都设置为0:00)?-在这种情况下,您还需要截断sysdate-例如,根据David的回答,TRUNC(sysdate)-1
。sysdate-1
是“sysdate-24小时”。可能您的SENTDATE
没有时间部分(即所有记录都设置为0:00)?-在这种情况下,您还需要根据David的回答截断sysdate,例如TRUNC(sysdate)-1
。