0
日付が2つの特定の日付の間にあるOracleデータベースから行を取得しようとしています。私が使用しています2日間の日付を持つ行を検索する
FIRST_ACTIVE_TS
---------------
17-11-07
17-11-07
問合せ:
select first_active_ts from <Table name> where TRUNC(first_active_ts)
between TO_DATE('2017-11-06','YYYY-MM-DD') and TO_DATE('2017-11-08','YYYY-MM-DD');
しかし、クエリが0の行を返します。
正しくTRUNCを使用していますか?これについて – dan6657
何が '
答えて
お客様の日付は
RR-MM-DD
の形式で表示されています。TO_CHAR(first_active_ts, 'YYYY-MM-DD')
を使用して表示すると、年が誤って2017
ではなく0017
と入力されていることがあります。この場合、クエリはゼロ行を正しく返しているため、データを修正する必要があります。出典
2017-11-07 09:28:55 MT0
実際には部分的にあなたはそれを正しく得ました。私がcharを使って印刷したとき、それは "0007-11-17"を示しました。だから、なぜ基本的に07の代わりに0007と日付を取っているのか知りません。 –
@SrijanSharmaあなたは 'DD-MM-YYYY'入力を持っていて、ユーザは' 17-11-07'を入力していて、 '07'は' 7あなたは間違った年を取る。有効な日付が入力されるように強制する必要があります(データベースに制約があるか、日付が入力されるUIを更新して通年が必要か、その両方)。 – MT0
問題を解明してくれてありがとう。長い間立ち往生していた。 –
出典
2017-11-07 09:33:38
これは日付が '2017-11-08 00:00:01'と' 2017-11-08 23:59:59'の間の行を取得しません – MT0
私はこのスクリプトを正しく試しました。私はOracle 11g。 –
関連する問題