そのような質問がすでにSOにたくさんあることは知っていますが、私の質問は既存の質問とは少し異なります。
シナリオ: データベースには、"yyyy-mm-dd hh:mm:ss" 形式の値を持つ DateTime 型の ApptDt 列があります。私はインド出身で、日付はヨーロッパ形式の「dd-mm-yyyy」で渡されます。したがって、このエラーが発生するたびに:
Varchar データ型を datetime に変換すると範囲外の値になる
サンプルクエリ 1:
Declare @EffectiveDt as varchar(29)
Set @EffectiveDt = '27/07/2013'
print Convert(DateTime,@EffectiveDt,102) // throws above error
サンプルクエリ 2:
Declare @EffectiveDt as varchar(29)
Set @EffectiveDt = '07/27/2013'
print Convert(DateTime,@EffectiveDt,104) // throws above error too
質問:
2 つの形式は有効であり、変換は T-Sql で許可されています。なぜそのようなエラーがスローされるのですか?
SQL 内でこのような相互変換を保持する一般的な関数またはシナリオはありますか?