0

このクエリを実行しようとしていますが、「次の例外がスローされ、int 列がオーバーフローしました。最大整数値を超えました。"ここに何が欠けているのかわからない

    select * from Schedwin.SEVT where 
ltrim(Resid)=345032 and type=5 or (type = 4 and subactid = 4)
or
(TYPE = 0)and (USER2='02-Force OT')
and ltrim(SEVT.t_start) <=  1215208800 
and ltrim(sevt.t_start) <=  1215207800
order by SEVT.TYPE

私の悪い t_start データ型は char なので、以下のようにクエリを変更すると動作します

    select * from Schedwin.SEVT where 
ltrim(Resid)=345032 and type=5 or (type = 4 and subactid = 4)
or
(TYPE = 0)and (USER2='02-Force OT')
and ltrim(SEVT.t_start) <= '1215208800' 
and ltrim(sevt.t_start) <= '1215207800'
order by SEVT.TYPE
4

2 に答える 2

3

整数のサイズは 4 バイトです。列に 4 バイトを超えるデータを格納しようとして、オーバーフローしています。その列の型としてbigintorを使用します。nvarchar:-) テーブルを変更します。

于 2013-01-31T03:07:11.690 に答える
1

INT の最大許容値は 2,147,483,647 です。許容される INT 値を超えた場合は、t_start 値を確認してください

于 2013-01-31T03:07:56.503 に答える