1

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 '%') 

....しかし、現時点ではこれも機能しません。

これらの問題のいずれか/両方に関するアイデアはありません。

前もって感謝します。

ガレス

4

1 に答える 1