0

(以下のコメントを更新)

SQL サーバー 2012 で奇妙な動作が発生しました。この要求は問題ありません。

select top 2002 cast(myTimeStr as time) from tbWithTime
order by ID

しかし

select top 2003 cast(myTimeStr as time) from tbWithTime
order by ID

で失敗しました

メッセージ 241、レベル 16、状態 1、行 1
文字列から日付や時刻を変換するときに、変換に失敗しました。

行 2002 と 2003 はどちらも「14:30」に等しい

次に、この 2003 ラインを具体的にキャストしようとすると、成功しました。

私の構成:

Name                                                    Version
Microsoft SQL Server Management Studio                  10.50.1600.1
Microsft SQL Server 2012                                11.0.3339.0
4

2 に答える 2

2

問題の原因となっている実際の行を見つけるには、次のことを試してください。

 SELECT * FROM tbWithTime WHERE TRY_CONVERT(time,myTimeStr) IS NULL

TRY_CONVERT:

キャストが成功した場合は、指定されたデータ型にキャストされた値を返します。それ以外の場合は null を返します。

于 2013-08-08T08:46:22.873 に答える