-PR-
解決
済み

SQLの型について

  • 困ってます
  • 質問No.43225
  • 閲覧数41
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 57% (4/7)

ASP+SQL初心者、hiroと申します。
ASPからデータベースに 1'56.123 のような計測タイムなどを
INSERTする場合、データベースの型は何にしたらよろしいのでしょうか?
今の所、varchar型で試しているのですが、「型が一致しません」と
なってしまいます。
char型にCONVERTしても、うまくいきませんでした(結果は同じ)。
以前は、分・秒・1/1000 のように3分割してINSERTしていましたが、
できれば、今回は1つでINSERTしたいと思っています。
よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル10

ベストアンサー率 42% (79/186)

的外れな回答であればすみません。

確認ですがテーブルはもちろんcarcharにしてますか。
そうであれば、原因はSQL文だと思うのですが、以下のようなイメージでしょうか?

insert into A (B) values ('1'56.123');
A:テーブル名 B:列名

これだと'が重なりますよね。ですから、以下のようにしてください。

insert into A (B) values ('1''56.123');
お礼コメント
ssshiro

お礼率 57% (4/7)

回答、ありがとうございます。
タイムの文字列中のアポストロフィが原因の様でした。
実際にはタイムは変数に入っていますので、
変数の中のアポストロフィをキャラクターコードに変換したらOKでした。

Time_Data = "1'56.123"
Time_Data = Replace(Time_Data,"'",Chr(39)+Chr(39))

この後、INSERTの処理が成功しました。
大変、参考になりました。ありがとうございました。
投稿日時 - 2001-02-22 10:35:24
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル12

ベストアンサー率 65% (242/372)

個人的な意見ですが、私なら1/1000秒を単位とした長整数型か、秒を単位とした単精度浮動小数点型にします。 理由はこのデータを再利用する場合、文字列型より数値の方が断然利用しやすいと思います(並び換えや再加工など) 文字列型でも良いんでしょうが、途中空白入ってしまったりデータ形式が狂ってしまうと整合が取れなくなってしまうかと思います。 仕様で文字列型と決まっているのでしたら仕方ないですが ...続きを読む
個人的な意見ですが、私なら1/1000秒を単位とした長整数型か、秒を単位とした単精度浮動小数点型にします。

理由はこのデータを再利用する場合、文字列型より数値の方が断然利用しやすいと思います(並び換えや再加工など)

文字列型でも良いんでしょうが、途中空白入ってしまったりデータ形式が狂ってしまうと整合が取れなくなってしまうかと思います。

仕様で文字列型と決まっているのでしたら仕方ないですが、
もし変更できるのなら参考にしていただければ幸いです。


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ