日付の表示形式の変換について への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2009/10/23 00:51:35
VB の Date 型として得たいのであれば、『CDate(Split(Text1.Text, "(")(0))』だけで OK かと。
『Format(CDate(Split(Text1.Text, "(")(0)), "'YYYYMMDD'\;")』だと、
「'20091022';」といった文字列になってしまいますから。
> Date型「yyyy-mm-dd」で保存
日付を「String 型にする時」には書式指定が必要ですが、
Date 型そのものに書式はありません。
SQL として出力する場合とは異なり、Recordset 経由で出力する場合には、
Date 型を String に変換する必要は無いはずです。
『Format(CDate(Split(Text1.Text, "(")(0)), "'YYYYMMDD'\;")』だと、
「'20091022';」といった文字列になってしまいますから。
> Date型「yyyy-mm-dd」で保存
日付を「String 型にする時」には書式指定が必要ですが、
Date 型そのものに書式はありません。
SQL として出力する場合とは異なり、Recordset 経由で出力する場合には、
Date 型を String に変換する必要は無いはずです。
投稿者 たすく  (社会人)
投稿日時
2009/10/23 00:39:56
いつもお世話になっております。
テキストボックスに表示された「yyyy年mm月dd日(aaa)」形式の日付を、
SQLサーバ側のテーブルにDATE型形式「yyyy-mm-dd」で保存したいのですが、
どのように変換すればよいでしょうか?
今現在、下記のコードを試したところ、『型が一致しません』のエラーが返ってきます。
Private Sub Form_Load()
'フォームロード時、text1に日付を表示
text1.Text = Format(Date, "yyyy年mm月dd日(aaa)")
End Sub
Private Sub Save_Click()
~中略~
'サーバ上のテストテーブル「days」フィールドに「yyyy年mm月dd日(aaa)」をDate型「yyyy-mm-dd」で保存
rs.AddNew '新規レコード追加
rs!days = Format(CDate(Split(text1.Text, "(")(0)), "'YYYYMMDD'\;")
rs.Update '更新(保存)
rs!days = Format(CDate(Split(text1.Text, "(")(0)), "'YYYYMMDD'\;")
~中略~
End Sub
ご教示よろしくお願いします。
ご回答ありがとうございます!!
アドバイスのとおりコーディングしてみたところ、
通ることが出来ました!
プログラムをコーディングして3ヶ月経ちますが、
いまだに「(,"」や演算子の小さなミスに気づかず、
悩んでしまいます。
また壁にぶちあったときにはご教示ください!
ありがとうございました