SQL SelectでTRY CATCHブロックを使用できますか?たとえば、次のようなもののためSelectステートメントのCONVERTでCATYをトライする
:
select
order,
CONVERT(DATETIME, orderDate)
from orders
このシナリオを処理する最良の方法は何ですか?
SQL SelectでTRY CATCHブロックを使用できますか?たとえば、次のようなもののためSelectステートメントのCONVERTでCATYをトライする
:
select
order,
CONVERT(DATETIME, orderDate)
from orders
このシナリオを処理する最良の方法は何ですか?
のようなものが行うことができます。
SELECT ISDATE('11/13/2009')
SELECT ISDATE('13/11/2009')
SELECT節自体には、私はトライキャッチは選択の内側に可能であると思いますが、外部のストアドプロシージャで作業している時に可能ですしていないISDATE()
select
order,
CASE WHEN ISDATE(orderDate) = 1 THEN CONVERT(DATETIME, orderDate) ELSE NULL END
from orders
を使用しても
あなたは、日付のためにテストすることができます。 MS SQL Serverの2012年
begin try
select cast(strartnr as int) from table
end try
begin catch
select 10000 from table
end catch
を求めているまさに行い、新たな構築物があります:
SELECT
CASE WHEN TRY_CONVERT(float, 'test') IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result;
GO
は、IsDate関数がtrueの場合、あなたのようにそれをキャストすることができ、またhttp://msdn.microsoft.com/en-us/library/hh230993.aspx
本当に素敵なxDですが、これは2012年のSQLでうまくいきますよね? – MaikaDalila
@MaikaDalila:そうです。 – user10633
を参照してください。日付時刻。それがIsDateのポイントです。 – cjk
@ JohnIdol:「標準」とはどういう意味ですか? ISOは、標準の例です。 orderDateにはどのようなフォーマットがありますか? – Sung
申し訳ありません - 私は混乱していました - IsDateは問題ありません! orderDateがVarCharの場合 – JohnIdol