FC2ブログ


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



CONVERT関数

ときどき仕事でSQL Serverを扱うことがある。

今日はどうしても元々ある日付の型(nvarcharで格納)

YYYY/MM/DD hh:mm:ss を

YYYYMMDD に 変換を行いたかった。

2009/06/02 13:08:22 ⇒ 20090602 という風に。

単純にCONVERT関数を利用してみる。

F1でヘルプを確認すると YYMMDDと変換する引数は、112とのこと。

 >SELECT CONVERT(datetime,日付,112) AS 日付 FROM 日付テーブル

で実行してみるとなぜか算術オーバーフローと出てエラーが帰ってきた。

なぜだ。

不正な日付があるのかと思い、件数を減らしてみたが結果は同じ。。。

SQL2005よ、なぜだ。

日付型にコンバートしているからその際になんかしらの演算処理?で

オーバーフローを起こしているのかと考えて、さらにnvarcharに変換して

引数を与えてみることに。

 >SELECT CONVERT(nvarchar,CONVERT(datetime,日付),112) AS 日付 FROM 日付テーブル


!!

上手く行きました。

とりあえず一安心。

でもなんで?

この先で答えを探す?


Written by マムー

8年目SEの独り言。マムーな感じ。

人気ブログランキングへ

楽天カードの勧め♪
おすすめ商品
最新記事
カテゴリ
リンク
Rakuten
満員御礼祈願♪


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。