- ベストアンサー
SQLの型について
ASP+SQL初心者、hiroと申します。 ASPからデータベースに 1'56.123 のような計測タイムなどを INSERTする場合、データベースの型は何にしたらよろしいのでしょうか? 今の所、varchar型で試しているのですが、「型が一致しません」と なってしまいます。 char型にCONVERTしても、うまくいきませんでした(結果は同じ)。 以前は、分・秒・1/1000 のように3分割してINSERTしていましたが、 できれば、今回は1つでINSERTしたいと思っています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
的外れな回答であればすみません。 確認ですがテーブルはもちろんcarcharにしてますか。 そうであれば、原因はSQL文だと思うのですが、以下のようなイメージでしょうか? insert into A (B) values ('1'56.123'); A:テーブル名 B:列名 これだと'が重なりますよね。ですから、以下のようにしてください。 insert into A (B) values ('1''56.123');
その他の回答 (1)
- hequil
- ベストアンサー率65% (242/372)
回答No.2
個人的な意見ですが、私なら1/1000秒を単位とした長整数型か、秒を単位とした単精度浮動小数点型にします。 理由はこのデータを再利用する場合、文字列型より数値の方が断然利用しやすいと思います(並び換えや再加工など) 文字列型でも良いんでしょうが、途中空白入ってしまったりデータ形式が狂ってしまうと整合が取れなくなってしまうかと思います。 仕様で文字列型と決まっているのでしたら仕方ないですが、 もし変更できるのなら参考にしていただければ幸いです。
お礼
回答、ありがとうございます。 タイムの文字列中のアポストロフィが原因の様でした。 実際にはタイムは変数に入っていますので、 変数の中のアポストロフィをキャラクターコードに変換したらOKでした。 Time_Data = "1'56.123" Time_Data = Replace(Time_Data,"'",Chr(39)+Chr(39)) この後、INSERTの処理が成功しました。 大変、参考になりました。ありがとうございました。