
No.1ベストアンサー
- 回答日時:
まずは、SQL Serverがどのように処理をしているか理解することです。
・varcharとintの加算を行う場合、データ型の優先順位の高い方のデータ型に暗黙的に変換されます。
http://msdn.microsoft.com/ja-jp/library/ms190309 …
varcharよりもintの優先順位は高いので、varcharがintに変換されます。
'09110013'+1 => 9110013+1 => 9110014
算出結果はvarcharではなくintです。当然前ゼロは付きません。
・上記intの結果をvarchar(8)のフィールドに無理やりセットしていることになるので、ここでも暗黙変換が起こります。
9110014 => '9110014'
上記を理解すれば、前ゼロはvarcharに変換後、改めて付けるしかないことも理解いただけるでしょう。
DECLARE @V varchar(8) = '09110013'
SET @V = RIGHT('00000000'+CONVERT(varchar,(@V+1)),8)
SELECT @V
※暗黙変換はエラーのもとです。極力明示的な変換を行うことをお勧めします。
この回答への補足
ありがとうございました、勉強になりました。
↓こんな事を考えています。
自動採番するキー(構成は「年下2桁+月2桁+追番4桁」)や
各マスターのコードは数字だけの構成でもvarchar型に統一
しようと考えています。
また、時刻や時間を varchar(4)で持つか、smallintで持つか悩んだ結果
smallintで持ち、同時に時刻や時間を分に置き直して持つように
考えました・・・(足したり引いたりが分の方が簡単なので)
始業8:30→510分、終業17:00→1020分、一日の勤務時間1020分-510分→8:30
一週間の勤務時間510分×5→2550分→42:30、てな感じで使います。
時間→分はfloor(時間/100)*60+時間%100
分→時間はfloor(分/60)*100+分%60
何か間違った考え方をしていないでしょうか?
数字だけで構成されるキーやコードはどんな型にするのがオーソドックスなんでしょうか?
また、時刻や時間も計算も含めどんな扱い方がオーソドックスなんでしょうか?
(jamshid6さんの)標準的な考え方があれば教えて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
50以下は“50”も入るのですか?
-
16進小数0.Cを10進数小数に変換...
-
偏微分の記号をタイプするため...
-
5進法を10進法への直し方
-
フーリエ変換・逆変換の虚数成...
-
HEX2BIN関数の使い方。
-
16進数の1Cを二進数と十進数で...
-
Excelにて、時間(8:30等)を数...
-
一次変換とは?(大学受験)
-
「じじょう」が正しい読み方?
-
IPアドレスを2進数へ変換する
-
小学4年生の算数(小数)の問題で...
-
Dedekindのη関数変換公式
-
10進数から2進数への変換の仕方...
-
Excel 16進数
-
教えてくださいお願いします。
-
dBm→dBμV/mの換算について
-
フーリエ変換、逆変換の「2π」の...
-
「最大300字程度」
-
1億x1億はいくらでしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
50以下は“50”も入るのですか?
-
偏微分の記号をタイプするため...
-
16進小数0.Cを10進数小数に変換...
-
5進法を10進法への直し方
-
HEX2BIN関数の使い方。
-
Excel 16進数
-
EXCELで10進数表記をB...
-
ヤコビアンが0になってしまう場...
-
X(t)=sin(ωt)をオイラーの公式...
-
「じじょう」が正しい読み方?
-
dBm/HzからdBm/MHzへの単位変換
-
Excelにて、時間(8:30等)を数...
-
10進数の50を2進数で表すといく...
-
フーリエ変換、逆変換の「2π」の...
-
幾何と代数は同じ数学でしょうか
-
10進数25.25を2進数に変換する...
-
=(イコール)の上下に点々があ...
-
算数計算 大至急お願いします
-
自然対数の単調変換について
-
2進数の1010は、10進数ではいく...
おすすめ情報