Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在00:05运行查询时,如何获取最近24小时内的记录_Sql_Oracle - Fatal编程技术网

Sql 在00:05运行查询时,如何获取最近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也会给出带有时间戳的日期,但如果

如何在过去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 >= 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=and
SYSDATE-1
是“SYSDATE-24小时”。可能您的
SENTDATE
没有时间部分(即所有记录都设置为0:00)?-在这种情况下,您还需要截断sysdate-例如,根据David的回答,
TRUNC(sysdate)-1
sysdate-1
是“sysdate-24小时”。可能您的
SENTDATE
没有时间部分(即所有记录都设置为0:00)?-在这种情况下,您还需要根据David的回答截断sysdate,例如
TRUNC(sysdate)-1