使用该语句未在plsql查询到昨天表新增的记录,场景为表没有时间字段请分析原因给出方法,语句:SELECT *FROM AC01 a WHERE TO_CHAR(TRUNC(TO_DATE('1970-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')) + (a.ac01_id / 86400), 'YYYY-MM-DD') = '2023-06-12';
时间: 2023-12-31 09:04:17 浏览: 154
根据您提供的SQL语句,可以看出您使用了一个计算时间戳的方法来查询昨天新增的记录,但是这种方法只能在表中有一个表示时间戳的字段时才能使用,对于没有时间字段的表,这种方法是不可行的。
针对没有时间字段的表,可以尝试以下方法查询昨天新增的记录:
1. 使用系统时间
在查询时使用系统时间来计算昨天的日期,例如:
```
SELECT *
FROM AC01
WHERE TRUNC(SYSDATE) - TRUNC(ac01_created_date) = 1;
```
其中,ac01_created_date为您要查询的记录创建日期字段名。
2. 使用Oracle的日志文件
如果您开启了Oracle的日志文件,可以使用以下SQL语句查询昨天新增的记录:
```
SELECT *
FROM AC01
AS OF TIMESTAMP (TRUNC(SYSDATE) - INTERVAL '1' DAY);
```
其中,AC01为您要查询的表名,TRUNC(SYSDATE) - INTERVAL '1' DAY表示昨天的日期。
希望这些方法能够帮助您查询到昨天新增的记录。
相关问题
plsql要查找一张oracle数据库的表昨天的新增记录,但是表没有创建时间字段怎么办
可以通过以下两种方法来查找昨天新增的记录:
1. 使用Oracle的Flashback技术
如果您开启了Oracle的Flashback技术,可以使用以下SQL语句查询昨天新增的记录:
```
SELECT *
FROM table_name
AS OF TIMESTAMP (SYSDATE-1);
```
其中,table_name为您要查询的表名,SYSDATE-1表示昨天的日期。
2. 使用Oracle的日志文件
如果您没有开启Flashback技术,可以使用以下SQL语句查询昨天新增的记录:
```
SELECT *
FROM table_name
WHERE DATE_CREATED >= TRUNC(SYSDATE-1)
AND DATE_CREATED < TRUNC(SYSDATE);
```
其中,table_name为您要查询的表名,DATE_CREATED为您要查询的记录创建日期字段名,TRUNC函数将日期截断到天,SYSDATE-1表示昨天的日期。
plsql写oracle语句:查某个字段不为空的值
你可以使用以下的 SQL 语句来查询某个表中某个字段不为空的值:
```
SELECT * FROM table_name WHERE column_name IS NOT NULL;
```
其中,`table_name` 是你要查询的表名,`column_name` 是你要查询的字段名。这条 SQL 语句将会返回所有该字段不为空的记录。
阅读全文