sybase ASE 15.5 に関して、(おそらく) 非常に簡単に答えられる質問がもう 1 つあります...私のホットなトピックではありません :-(
日付列を持つ一時テーブルがあります。
日付は、LIVE データを変換する変換を使用して一時テーブルに挿入されます。
から
例えば:
2013-01-21 10:05:00.0
2013-01-28 08:03:00.0
に
21/01/2013
28/01/2013
using (CONVERT(VARCHAR(10), DATEFIELD, 103)
私が直面している問題は、日付範囲フィルターを使用して LIVE テーブルから一時テーブルにデータを選択しようとしたときです。
WHERE (CONVERT(VARCHAR(10), DATEFIELD, 103) BETWEEN '21/01/13' AND '28/01/13')
....このsybaseを実行すると、2013年1月28日ではなく、2013年1月21日の日付のみが挿入されます。
.....さらに、代わりに 2013 年 1 月 29 日を終了日として使用すると、
WHERE (CONVERT(VARCHAR(10), DATEFIELD, 103) BETWEEN '21/01/13' AND '29/01/13')
私は両方を挿入します:
21/01/2013
28/01/2013
さらにさらに-21/01/13のみを実行する場合、つまり
WHERE (CONVERT(VARCHAR(10), DATEFIELD, 103) BETWEEN '21/01/13' AND '21/01/13')
何も返されません。
何か案は?
おそらく、sybase で BETWEEN を使用するのは良くありません。明確にするために、フィールドは DATETIME から VARCHAR (10) に変換されます。
私が抱えているもう1つの問題は、この最初の部分を修正したときに、たとえばワイルドカードを渡すことができるようにしたいことです
WHERE (CONVERT(VARCHAR(10), DATEFIELD, 103) BETWEEN '%' AND '%')
....しかし、現時点ではこれも機能しません。
これらの問題のいずれか/両方に関するアイデアはありません。
前もって感謝します。
ガレス