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

hjqgdpho  于 2023-04-11  发布在  Oracle
关注(0)|答案(1)|浏览(302)

我的数据库中有下面的表(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/

aurhwmvo

aurhwmvo1#

您肯定没有创建列名为date的表;它被保留用于数据类型名称。
总之:你可以

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大于或等于今天的午夜,小于明天的午夜,这正是你想要的:今天的价值观。

相关问题