使用类似SQL语句查找特定值

使用类似SQL语句查找特定值,sql,oracle,sql-like,sysdate,Sql,Oracle,Sql Like,Sysdate,我正试图根据今天的日期从表中的文件中读取一个文件。例如,如果今天是11月21日,我想展示清单21-11-2018。我的问题是: CREATE TABLE "FILE_LIST" ( "FILENAME" VARCHAR2(40), "STATUS" CHAR(1 Byte) ); INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_20-11-2018','N'); INSERT INTO "FILE_LIST" ("FILEN

我正试图根据今天的日期从表中的文件中读取一个文件。例如,如果今天是11月21日,我想展示清单21-11-2018。我的问题是:

CREATE TABLE "FILE_LIST" (
"FILENAME" VARCHAR2(40),
"STATUS" CHAR(1 Byte)
);

INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_20-11-2018','N');
INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_21-11-2018','N');
INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_22-11-2018','N');
INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_23-11-2018','N');

SELECT FILENAME FROM FILE_LIST WHERE FILENAME LIKE %'TO_CHAR(SYSDATE,'DD-MM-YYYY')'% AND STATUS = 'N'

LIKE语句似乎不起作用。希望知道我的错误是什么

字符%s必须位于您要查找的字符串中:

CREATE TABLE "FILE_LIST" (
"FILENAME" VARCHAR2(40),
"STATUS" CHAR(1 Byte)
);

INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_20-11-2018','N');
INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_21-11-2018','N');
INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_22-11-2018','N');
INSERT INTO "FILE_LIST" ("FILENAME","STATUS") VALUES('LIST_23-11-2018','N');

SELECT FILENAME FROM FILE_LIST WHERE FILENAME LIKE '%' + TO_CHAR(SYSDATE,'DD-MM-YYYY') + '%' AND STATUS = 'N'
试试这个:

SELECT FILENAME FROM FILE_LIST WHERE FILENAME LIKE '%' || TO_CHAR(SYSDATE,'DD-MM-YYYY') || '%' AND STATUS = 'N';

我已经试过了,但似乎不起作用。也许您不能在字符串之间插入到字符(SYSDATE,'DD-MM-YYYY')。