ASP(VBScript)でSQLサーバにINSET INTO文を使ってデータを格納しているのですが、日付の部分がNULLの時、「1900/1/1」が入ってしまいます。
そのまま、空白を入れる方法はどうやったらよろしいのでしょうか?

TABLE1の内容は
番号|内容|日付です。

INSERT INTO TABLE1 VALUES ( 1, 'あいう', '')

結果
1|あいう|1900/1/1

このQ&Aに関連する最新のQ&A

A 回答 (3件)

あとは、プログラムの書き方次第ですね、、、




If hensu=Null Or hensu="" Then
dt = "NULL"
Else
dt = "'" & hensu & "'"
End IF

E_SQL = "INSERT INTO TABLE1 VALUES & _
"( 1,'あいう', " & dt& ")"
の様に書きます。
    • good
    • 2
この回答へのお礼

ありがとうございました。
お手をわずらわせてすみません。
参考にさせていただきます。

お礼日時:2001/06/27 20:42

日付型に 空白(ブランク)はダメです。


NullならOkですが。ということでNullにするということで回答します。

空白 =>'' じゃなくて
Null =>Null にしてみたら?

ASPは、Accessでしかやったことないですけど


VBでSqlServerやったときは、たしかに 
INSERT INTO TABLE1 VALUES ( 1, 'あいう', '')
で 1900/1/1 になりました。
なんで

INSERT INTO TABLE1 VALUES ( 1, 'あいう', Null)

でどうですか?

注意点は 空白('')だったら Nullに置き換えが必要になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。置き換えを考えてみます。

お礼日時:2001/06/27 18:28

空白を入れることは不可能です。


時刻型(datetime型)のフィールドへ、空白(' ')
という文字を代入することはできません。
代入しようとしても無視されます。
内部で空値に変換されているようです。

あなたがいれたいのは空値またはヌルでしょう。
空白と空値は異なるものです。
また、空値とヌルも異なります。

Datetime型へ空値を入れた場合
「1900/1/1 00:00:00.000」が代入されます。

これを避けるには
VALUES ( 1, 'あいう', '')
ではなく
VALUES ( 1, 'あいう', NULL)
と入力しましょう。
    • good
    • 1
この回答へのお礼

ありがとうございます。出来ました。
ずうずしく、もう少しお聞きしたいのですが、

hensu = Null

E_SQL = "INSERT INTO TABLE1 VALUES ( 1,'あいう', '" & hensu & "')"

という感じだとやっぱり「''」になってしまうので、変数でもちたいときはNullの情報が入ったときは文書を変えなければならないのでしょうか?それとも、書き方に問題があるのでしょうか?
ご回答いただけたら幸いです。

お礼日時:2001/06/27 18:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessのクエリ。日付と顧客で売上合計をだす。

期間を指定して、顧客の売上を合計したいです。

2つのテーブルからクエリを作成しました。

tbl顧客
顧客番号
顧客名

tbl販売
販売番号
日付
顧客番号
金額

Q_売上
日付
顧客番号
顧客名
金額

∑をクリックして、金額の集計は[合計]にしています。
その他は、[グループ化]です。

日付の抽出条件は、
Between [開始] And [終了]
としています。

顧客毎に合計を出したいです。
よろしくお願い致します。

Aベストアンサー

日付の集計をグループ化ではなく、Where 条件にすれば
よろしいかと。

QINSERT INTO table(DATE) VALUES('20090101')ができません。

初めましてご教授よろしくお願いします。

Accessにレコードを追加しようとしているのですがうまくいきません。

どうもDATEというフィールドにテキスト型の'20090101'を入れようとするのがいけないみたいです。

予約語だからDATEのフィールド名を変えた方がいいことはわかっているのですが、お客様がテーブルを作成しているので変更することができません。

お客様いわくテキスト型で入るというのですがどうすれば入るのでしょうか?

ちなみにDATEフィールドはテキスト型です。

エラー内容は「INSERT INTO ステートメントの構文エラーです。」と表示されます。

Aベストアンサー

INSERT INTO table(DATE) VALUES('20090101')

INSERT INTO table([DATE]) VALUES('20090101')
にしてみてください。

Qエクセルで日付が入力されたセルの隣のセルの金額を合計するにはどうするのでしょうか。

A1、C1、E1セルにはユーザー定義(d”日”)で数字を入れると日付になります。
各、隣セルB1、D1、F1には金額が入力されています。
G1には合計が入るようになっています。
例えば、A1とE1に日付が入力された時、B1とF1の合計がG1に。
その後、C1に日付が入力されたらG1がB1、D1、F1の合計になるようにしたいです。
よろしくお願いします。

Aベストアンサー

こんばんは!
横からお邪魔します。

G1セルに
=SUM((A1>0)*B1,(C1>0)*D1,(E1>0)*F1)
ではどうでしょうか?m(_ _)m

Q構造が同じ別テーブルInsert Into する場合

追加クエリをVBA上のSQLで作成しています。

A.MDBとB.MDBに同名のTable_Aがあり、フィールドも同じです。。

これを重複をチェックするためにField_Aでジョインさせていますが、
テーブル名もフィールド名も同じなために区別ができません。

どのようにして区別するとよいのでしょうか?

Aベストアンサー

#1です。リンクを張って

INSERT INTO Table_A1
SELECT Table_A.*
FROM Table_A LEFT JOIN Table_A1 ON [Table_A].[ID]=[Table_A1].[ID]
WHERE ((([Table_A1].[ID]) Is Null));

みたいなSQL文でいかがでしょう

Q抽出結果で、合計と最新日付を得るには?

----A-----B-----C---
1 07/01 商品A 1,000
2 07/02 商品A 2,000
3 07/02 商品B 3,000
4 07/03 商品A 4,000
---------------------
のように、日付・品名・金額の列があり、
「商品A」の合計金額と、その合計した明細の最新日付を
出したいのですが、どうすればいいのでしょうか?

Aベストアンサー

合計は、
=SUMIF(B1:B4,"商品A",C1:C4)

最新日付は、
=MAX(IF(B1:B4="商品A",A1:A4))
と入力してから、CtrlキーとShiftキーを押しながらEnter

Qアクセスの日付/時刻型で標準型を選択した場合のXX/XX/XX 00:00:00の時刻部分が表示されない

アクセスデータベースについてお教え下さい。

アクセスデータベースのフィールドを日付/時刻型のGeneral Date(標準)に設定した場合、たとえば、2002/02/25 00:00:00と入力すると、00:00:00の部分が省略されてしまいますが(00:00:00でないと表示されるのですが)、00:00:00を表示させるには、どのようにしたらよろしいでしょうか

環境は:Windows2000上でAccess2000を使用しています。

Aベストアンサー

プロパティを標準→yyyy/mm/dd hh:nn:ss
と入力してください。
何かあれば補足して下さい。

Q日付をキーにその日付から前と後をそれぞれ金額を合計する方法が知りたいで

日付をキーにその日付から前と後をそれぞれ金額を合計する方法が知りたいです。
SUMIFかSUMPRODUCTあたりの関数を使えばいいかなと思うのですが、いい方法が思いつきません。
よろしくお願いいたします。

Aベストアンサー

ちょっと、完璧にイメージできてないですが画像の上部にある日付の右にその日付未満(以下)と以上(それより新しい日付)の合計でいいんでしょうか?

日付をシリアル値と思えばSUMIFで条件式に不等式を入れれば可能です。

A1に軸となる日付が入ると仮定して

軸となる日付以前の日付
=SUMIF(日付データのある範囲,"<="&a1,金額のある範囲)

軸となる日付以降の日付
=SUMIF(日付データのある範囲,">"&a1,金額のある範囲)

どちらに軸となる日付を入れるかは不等号の=をどちらに入れるかです。

SUMPRODUCTでも出来ると思うけど、重くなりそうなので省略します。
きっと、別の方が答えてくれるでしょう。

QOracle 8i コンマ(,)を含むデータをinsertしたい

再度、質問させていただきます。

コンマを含むデータをinsertするにはどうしたらよいでしょうか?
例えば、次のようなテーブルを作成します。
CREATE TABLE SAMPLE
(NAMEVARCHAR( 15)NOT NULL,
ADDRESSVARCHAR(30));

そして、

insert into sample
values
(Yamada, '731 Fondren,Houston,TX');

とinsertすると当然エラーになります。”ORA-00984: ここでは列は使用できません”というエラーが返ってきます。

"731 Fondren,Houston,TX"というコンマを含むアドレスをinsertしたいのですが、どうしたらよいでしょうか?

set scan off をしてもダメで、
'[731 Fondren,Houston,TX]'という風に変えても、上と同じ”ORA-00984: ここでは列は使用できません”というエラーが返ってきます。グーグルで調べて、arrayof(text)という風にタイプを変えるのかなと試しましたが、だめでした。

何かアドバイスをお願いします。

再度、質問させていただきます。

コンマを含むデータをinsertするにはどうしたらよいでしょうか?
例えば、次のようなテーブルを作成します。
CREATE TABLE SAMPLE
(NAMEVARCHAR( 15)NOT NULL,
ADDRESSVARCHAR(30));

そして、

insert into sample
values
(Yamada, '731 Fondren,Houston,TX');

とinsertすると当然エラーになります。”ORA-00984: ここでは列は使用できません”というエラーが返ってきます。

"731 Fondren,Houston,TX"というコンマを含むアドレスをinsertしたいのですが、どう...続きを読む

Aベストアンサー

insert into sample
values
('Yamada', '731 Fondren,Houston,TX');
としてください。

Qエクセル 最新日付以外のデータを合計する

下表があるとしまして、
氏名日付買上金額
鈴木5月5日10
鈴木5月6日60
鈴木5月7日100
鈴木5月9日400
田中5月4日100
田中5月7日200
山田5月1日600
山田5月2日200
山田5月3日300
1970
氏名毎に、最新日付以外の合計を計算したいのです。
この場合、鈴木さんが170 田中さんが100 山田さんが800の合計1070がそれぞれの氏名の最新以外データの合計となりますが、これらを自動的に計算できないでしょうか?
よろしくおねがいします。

Aベストアンサー

こんにちは。

以下の方法でできます。
大きく分けて2ステップです。
データはあらかじめ日付順でソートされているものとします。


1)作業列を作る

最新データの場合のみ買上金額にかかわらず0を返し、
それ以外の場合は買上金額そのままを返す式を、
別な列に入力します。

たとえば例で言えばA~C列に氏名、日付、買上金額ですので、
D列を作業列としましょう。
D1セルに「買上金額2」などと見出しをつけてください。

D2セルに次の式を入力します。
 =IF(A2=A3,C2,0)
そしてこの式をすべての行にコピーします。
すると、最新データの行のみ、0となり、
それ以外の行は、買上金額が表示されます。


2)集計機能で名寄せして集計する

下準備ができたらいよいよ集計です。
リスト内にカーソルを置いた状態で、

 データ-集計

で、集計の設定画面が開きます。
ここで、
 「グループの基準」 を 「氏名」
 「集計の方法」 を 「合計」
を指定します。

そして、
 「集計するフィールド」では、
 「買上金額2」のフィールドにのみ、
チェックがつくようにします。

そして、OKを押せば自動的に集計されます。

こんにちは。

以下の方法でできます。
大きく分けて2ステップです。
データはあらかじめ日付順でソートされているものとします。


1)作業列を作る

最新データの場合のみ買上金額にかかわらず0を返し、
それ以外の場合は買上金額そのままを返す式を、
別な列に入力します。

たとえば例で言えばA~C列に氏名、日付、買上金額ですので、
D列を作業列としましょう。
D1セルに「買上金額2」などと見出しをつけてください。

D2セルに次の式を入力します。
 =IF(A2=A3,C2,0)
そしてこの式を...続きを読む

Q日付型項目のNULLについて(PostgreSQL)

よろしくお願いします。

下記内容のtest_tableを作成して
----
CREATE TABLE "test_table" (
"id" varchar(10) NOT NULL,
"fdate" date
);
----

下記内容のデータを登録しました。
----
insert into test_table(id,fdate) values ('abc',NULL);
----

下記のsqlでデータを取得できませんでした。
どうしてでしょうか?
select * from test_table where fdate = NULL;

Aベストアンサー

select * from test_table where fdate = NULL;
ではなく
select * from test_table where fdate is NULL;
でお試し下さい。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング