- PR -

[SQLServer2000]charからdatetimeへの変換

1
投稿者投稿内容
みゅーたん
常連さん
会議室デビュー日: 2005/04/28
投稿数: 31
投稿日時: 2006-06-14 16:41
いつもお世話になっております。
C#側で質問すべきか悩みましたがこちらで質問させてください。
SQLServer2000とC#を使っております。

Aテーブルで日付データがchar型で"YYYYMMDD"となっているものを
Bテーブルにdatetime型で入れたいと思っています。

この際、C#でchar型からdatetime型に型変換を行った上で
INSERTする以外の方法(できるだけ簡単にできるもの)があれば
教えてください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-14 16:56
こちらの 111 とか 120 あたりが参考になるかと思います。

  CAST と CONVERT

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
みゅーたん
常連さん
会議室デビュー日: 2005/04/28
投稿数: 31
投稿日時: 2006-06-14 17:55
じゃんぬねっとさんありがとうございます。

時刻まで入れたいと思っているのですが
CONVERT(datetime, 'YYYYMMDD', 120)
を使った場合は
YYYY-MM-DD 00:00:00.000
と必ず時刻の部分は0が出るという認識であっているでしょうか?
設定等によって変わる等はありますでしょうか?
0以外のものが出て欲しくないので、0以外が出なければよいのですが・・・。

また、そのままの値でインサートしても
2006-05-01 00:00:00.000
と正しく入ってしまいました。
何も設定する必要がないのであればそのまま入れてしまおうと
思っているのですが、こちらも設定によって
00:00:00.000以外に変わることはあるのでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-14 19:49
引用:

みゅーたんさんの書き込み (2006-06-14 17:55) より:

時刻まで入れたいと思っているのですが
CONVERT(datetime, 'YYYYMMDD', 120)
を使った場合はYYYY-MM-DD 00:00:00.000
と必ず時刻の部分は0が出るという認識であっているでしょうか?


'YYYYMMDD' ですからね。

引用:

設定等によって変わる等はありますでしょうか?
0以外のものが出て欲しくないので、0以外が出なければよいのですが・・・。


この理由が、わからないですね。
何も設定されていないのであれば、0 以外は好ましくないですよね。
なぜ、その逆をしたいのかがわからないです。

引用:

また、そのままの値でインサートしても
2006-05-01 00:00:00.000
と正しく入ってしまいました。
何も設定する必要がないのであればそのまま入れてしまおうと
思っているのですが、こちらも設定によって
00:00:00.000以外に変わることはあるのでしょうか。


結局のところ、時刻を含めたいのか、含めたくないのかがわからないです。

時刻にあたる部分がないのであれば、時刻形式のない style を使えば良いでしょうし、
あるのであれば、'正しく' 表示させるべく、expression を設定すべきです。
2 つにひとつだと思うのですが、ご所望の方式はどちらにも該当しません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2006-06-14 20:01
横から失礼します。
引用:

みゅーたんさんの書き込み (2006-06-14 17:55) より:
また、そのままの値でインサートしても
2006-05-01 00:00:00.000
と正しく入ってしまいました。


日本限定ならこれで良いですが異文化では年月日の順序が入れ替わることがあるので要注意です。
みゅーたん
常連さん
会議室デビュー日: 2005/04/28
投稿数: 31
投稿日時: 2006-06-15 15:18
皆様ご指摘ありがとうございます。

じゃんぬねっとさんのおっしゃっている
時刻に関することですが、あってもなくてもよいので
styleを変えようと思います。

Yamさんご指摘ありがとうございます。
日本限定ならということですね。きちんと設定します。

皆様どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)