如何在Oracle SQL developer中使用SQL查询获取当前数据



我有下面的表(Record_details)在我的数据库。

ID NUMBER,
PATH VARCHAR2(100),
Date TIMESTAMP(6);

在这里,我写了下面的查询来从这个表中获取记录

SELECT * FROM Record_details

我的问题是:我需要获取今天日期的所有数据;

SELECT * FROM RECORD_details where Date = '?';

我试过谷歌搜索,但找不到确切的工作查询https://popsql.com/learn-sql/sql-server/how-to-query-date-and-time-in-sql-serverhttps://www.sqlshack.com/sql-commands-to-check-current-date-and-time-timestamp-in-sql-server/

您当然没有创建列名为date的表;为数据类型name保留。

无论如何,你可以

SELECT * FROM RECORD_details where trunc(date_column) = trunc(sysdate);

SELECT * FROM RECORD_details where date_column >= trunc(sysdate) 
and date_column <  trunc(sysdate) + 1

选择你认为更合适的。第一个选项不会在date_column上使用索引(除非您创建一个基于函数的索引),而第二个选项会(但是-第一个看起来更简单,更漂亮)。


这些值代表什么?

SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
Session altered.
SQL> select sysdate, trunc(sysdate), trunc(sysdate + 1) from dual;
SYSDATE             TRUNC(SYSDATE)      TRUNC(SYSDATE+1)
------------------- ------------------- -------------------
06.04.2023 08:00:29 06.04.2023 00:00:00 07.04.2023 00:00:00
SQL>
  • trunc(sysdate)返回今天的日期设置为午夜
  • trunc(sysdate) + 1明天返回,设置为午夜

因此,如果date_column大于或等于今天的午夜,小于明天的午夜,这正是您想要的:今天的值。

最新更新