file_name
列の値に現在の日付がYYYY-MM-DD形式で格納されているレコードを取得しようとしています。私のテーブルがある場合例: 現在の日付のレコードをフィルタリングする方法
abcd_2016-05-06.txt
asd-2016-05-04.txt
axx_2016-05-03.txt
と私は2016年5月6日にクエリを実行し、私は結果セットに
abcd_2016-05-06.txt
を取得したいです。どうやってやるの?
file_name
列の値に現在の日付がYYYY-MM-DD形式で格納されているレコードを取得しようとしています。私のテーブルがある場合例: 現在の日付のレコードをフィルタリングする方法
abcd_2016-05-06.txt
asd-2016-05-04.txt
axx_2016-05-03.txt
と私は2016年5月6日にクエリを実行し、私は結果セットに
abcd_2016-05-06.txt
を取得したいです。どうやってやるの?
あなたはその後、'%2016-05-05%'
のような値を形成するために、ワイルドカード文字とそれを連結することができますが、
to_char(sysdate, 'YYYY-MM-DD')
を示してきた形式の文字列に現在の日付を変換することができます。その後、the like
pattern-matching conditionで、文字列ワイルドカードに一致している任意の値を見つける:%
ワイルドカードとペア
select file_name -- or count(*), or whatever columns you want
from your_table
where file_name like '%' || to_char(sysdate, 'YYYY-MM-DD') || '%';
like
オペレータはあなたを助ける必要があります。
select file_name
from my_files
where file_name like '%2016-05-06%'
select
の上記のクエリ'%
と%'
の間で囲まれた文字列が含まれているmy_files
table
からすべてのファイル名。
あなたがそのようなファイルの数を取得する場合は、このような何か必要があります:あなたはシステムの現在の日付と一致するように欠けている場合は、システムから現在の日付を使用することができ
select count(*)
from my_files
where file_name like '%2016-05-06%'
日付をハードコードできません。私は現在の日付を持つファイルをフィルタリングしたかったのです。 – Midhun
これは、現在の日付を取得する方法です。https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions172.htm 私があなたの場合は、この目的のためにストアド・ファンクションを作成し、チェックする日付をパラメータとして使用します。それは長期的には非常に役立つことがあります。 –
を。これはOracle上で動作しますが、他のデータベースには異なる方法があります。
ただし、これはしばしば不適切な決定です。つまり、現在のシステム日付以外の日付にはコードが機能しません。日付をパラメータとして渡すか、別のテーブルから取得する方がはるかに良いでしょう。
?あなたが何を求めているか分かりません。サンプルのテーブルデータ、クエリ、期待される出力を表示してください。 – OldProgrammer
日付は常にその形式ですか?なぜタイトルも時間を参照していますか?これはかなりシンプルなようですが、あなたが行ったクエリの試行とそれが間違っている理由とともに、より多くのデータと期待される結果を追加できますか? –
ファイル名の日付(yyyy-MM-dd)format.iには、現在の日付を持つレコードをフィルタリングします。 – Midhun