• ベストアンサー

SQLの型について

msystemの回答

  • ベストアンサー
  • msystem
  • ベストアンサー率42% (79/186)
回答No.1

的外れな回答であればすみません。 確認ですがテーブルはもちろんcarcharにしてますか。 そうであれば、原因はSQL文だと思うのですが、以下のようなイメージでしょうか? insert into A (B) values ('1'56.123'); A:テーブル名 B:列名 これだと'が重なりますよね。ですから、以下のようにしてください。 insert into A (B) values ('1''56.123');

ssshiro
質問者

お礼

回答、ありがとうございます。 タイムの文字列中のアポストロフィが原因の様でした。 実際にはタイムは変数に入っていますので、 変数の中のアポストロフィをキャラクターコードに変換したらOKでした。 Time_Data = "1'56.123" Time_Data = Replace(Time_Data,"'",Chr(39)+Chr(39)) この後、INSERTの処理が成功しました。 大変、参考になりました。ありがとうございました。

関連するQ&A

  • SQL型

    SQLの型(CHAR、VARCHAR等)の種類と格納できる値の種類や大きさを教えてください。

  • ストアドでVB.NetのDataGridにDataTime型のデータの時間だけを返したいです。

    DBはMSDE。 肝心のフィールドはTimeでDateTime型で、以下のようなデータがあります。 Time 5:00:00PM 5:30:00AM . . これをストアドで返します。普通に SELECT Time ... 以下略。 クライアント側、sqlCommand -> パラメタ の設定 -> sqlDataAdapter -> DataSetにエントリを返し -> DataGrid1.DataSource = DataSet.Tables(0) これで、実行すると、返ってくる値は すべて 30/12/1899 となります。時間の部分は何も出ません。これはDB側に、日にちを入れてないので出てくるデフォルト値と思われます。 次に、前の SELECT文に CAST(sql_variant、Time) を加えると、30/12/1899 5:00:00PM と出ますが、sql_variant型なので、SABSTRINGで切れません、上のCAST文にさらにCONVERT(Varchar(30),,)をかぶせると、30/12/1899 に戻ってしまいます。 今まで試した方法は、 CONVERT(Varchar(30),Time,108) CONVERT(Varchar(30),Time,8) CONVERT(char(30),Time,108) CONVERT(Varchar(30),Time) EXTRACT (Time.....) 等などあらゆる方法(データ型のバリエーションを含む)を試みましたが、返されのは30/12/1899ばかりです。 DateTimeはDB側で比較のクエリに使用するのでをVCharに変えることはできません、Timeのデータにダミーの日にちを付け加えたくもありません。 なんとか時間だけを取る方法をご教授ください。お願いします。

  • ODBC SQLサーバーでSQLを使いたい・・・

    ODBC SQLサーバーでSQLを使いたい・・・ SET NOCOUNT ON DECLARE @EDATE DATETIME DECLARE @CUNT INT SET @COUNT = 0 WHILE ( @I <> -7 ) BEGIN IF ( DATANAME( WEEKDAY, DATEADD( DD, -1, GETDATE()))) = "金曜" BREAK ELSE SELECT @CUNT = @CUNT + 1 END SET @EDATE = CONVERT( CHAR, CONVERT( VARCHAR, DATEADD(DD, @COUNT, GETDATE()), 112) SELECT @EDATE 実行日からさかのぼり、金曜日の日付を表示したいSQLを作成しています。 なぜか"金曜"がおかしいとエラーが出てしまいます。 どなたかわかる方いましたらご教授お願い致します。

  • 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) と変換しています。 もっと簡単に変換する方法はありますでしょうか? ご教示頂けましたら、助かります。 宜しくお願い致します。

  • VBでSQL

    題の通りなのですが VBでSQLサーバ上のデータベースを操作したいのです 接続はできたのですが、 SQL文をVB上で実行するやり方がわかりません いろいろ試してみたのですが、 オブジェクトがないとか言われてしまいました。 初心者なので意味がよくわからず困っています。 アップデート、インサートなどをします。 本当に困っています。 よろしくお願いします。

  • A5:SQL Mk-2でテーブルは作れないのか?

    xamppとA5:SQL Mk-2ソフトを組み合わせてます。 phpmyadminでデータベースとテーブルを作ってMk-2でsql文 例としてselecto * from aaa;などは動きます。 しかしMk-2で CREATE TABLE shiire(scode CHAR(4),kosuu INT,sdate CHAR(7)); INSERT INTO shiire VALUES ('A002',35,'2003-04'); INSERT INTO shiire VALUES ('B002',24,'2003-05'); は作れません。phpmyadminのクエリでは作れます。 ご教授ください。

    • ベストアンサー
    • MySQL
  • 検索性能を向上させるには

    SQL Server 6.5を使っています。 レコードが100万件あるデータベースで varchar(80)の項目を中間一致で検索しているのですが 大抵タイムアウトになってしまいます。 このような場合に検索性能を向上させるにはどうすればいいでしょうか?

  • 暗黙の型変換をやめたい

    ASP.NET(C#2.0)からSQLServer2008R2のストアドプロシージャをコールする際、暗黙の型変換を使うとパフォーマンスが落ちるらしいので、全て明示的な型変換に修正したいと思っています。 MySQLをselectした値をリーダー(reader)に格納し、SQLServerにストアドコール時にパラメータ指定してinsertするのですが、何が暗黙的で何が明示的なのかわかりません。 下記は引数1にパラメータ、引数2にDBType(省略可)、引数3に値を指定しています。 [暗黙的かと思われるパラメータの渡し方] AddParameter("@パラメータ1", reader["値1"]); //char(2) AddParameter("@パラメータ2", DbType.string, reader["値2"].ToString()); //nvarchar(20) [明示的かと思われるパラメータの渡し方] AddParameter("@パラメータ3", DbType.DateTime, Convert.ToDateTime(reader["値3"])); //datetime AddParameter("@パラメータ4", DbType.Currency, (Convert.ToDecimal(reader["値4"])) * 100); //money 暗黙の型変換とは、引数3の型を指定しない場合に起こるという認識で合っていますでしょうか?

  • 文字列を time 型に変換するには。

    文字列を time 型に変換するには。 お世話になります。 PostgreSQL 8.2 & PgAdmin 1.6.3(WinServer 2003)を使用しています。 varchar 型のカラムに格納されている時刻を表す文字列('9:15' など)を time 型に変換してビューを作成する必要があるのですが、できずに困っています。 具体的には... 「table1」というテーブルに「時刻」(varchar 型)という名前のカラムを作成し、「9:15」という文字列を格納しておきます。 これをもとにビュー(view1)を作ろうとしているのですが、select 文のところで 、ERROR: syntax error at or near "時刻" SQLステート:42601 というエラー(構文エラー)が出てしまいます。  select time 時刻 from table1  結果:ERROR: syntax error at or near "時刻" SQLステート:42601 ちなみに、時刻を文字列で指定してやると、ちゃんと time 型で結果が返ります。  select time '9:15'  結果:09:15:00 抜本的に方法が間違っているとはおもうのですが、いくら調べてもこれを解決できるようなサイトが見当たりませんでした。 文字列を time 型に変換するにはどのようにしたらよいのかご教示いただけないでしょうか。 よろしくお願いします。

  • SQL serverへの画像の取り込みについて

    環境:vb.net 2008 express    SQL server2005 express 上記の環境でデータベースを作り出した初心者です。 画像ファイル(GIFまたはJPG)をvarbinary(MAX)型で SQLサーバーに保存したいのですが方法まったくがわかりません。 今、SQL側は * Int 型の "ID" という名前の ID フィールド * VarChar 型 の "Description" という名前のフィールド * varbinary 型の "Picture" という名前のフィールド があり、FORM1にこれらとButton1があります。 ボタンを押すと画像のパスを選択し、"Picture"ファイルに登録できればいいと考えています。 参考書を3冊ほど購入して勉強しているのですが、画像の取り込みについての記載がなく完全に足止めになってしまいました。 どうかご教授お願いいたします。 また、参考になるサイトがございましたら教えてください。