こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLで文字列を時刻に型変換する方法

SQLで文字列を時刻に型変換する方法を教えていただきたいです。

char型のAというカラムに'090000'が格納されています。
この値を
time型のBというカラムに型変換して登録したいのですが、

cast(A as time) としてもエラーが出てしまうので、現在は

cast(SubString(A,1,2)+':'+SubString(A,3,2)+':'+SubString(A,5,2) as time) と変換しています。

もっと簡単に変換する方法はありますでしょうか?

ご教示頂けましたら、助かります。
宜しくお願い致します。

投稿日時 - 2013-10-10 14:22:03

QNo.8299849

困ってます

質問者が選んだベストアンサー

こんにちは。

そうですね。
現在はそういう方法しかありません。

もしくは関数(FUNCTION)を作成してSQLを少しキレイに作成するのはどうでしょうか?
下記のSQLをご参考ください。

1)「fnCharToTime」関数を作成します。

CREATE FUNCTION dbo.fnCharToTime (
@Strchar(6)
)
RETURNS time AS
BEGIN
RETURN CONVERT(time, SUBSTRING(@Str,1,2)+':'+SUBSTRING(@Str,3,2)+':'+SUBSTRING(@Str,5,2))
END

2)結果

DECLARE @Str char(6)
SET @Str = '090000'
SELECT dbo.fnCharToTime(@Str)

どうでしょうか?

投稿日時 - 2013-10-11 11:01:17

お礼

やはり、簡単な方法はないのですね。
いろいろと検討したのですが、
関数を作成する方法は今後の参考にさせて頂くことになりました。ありがとうございました。

投稿日時 - 2013-10-15 09:36:28

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-