SQL Server 2005の:ビューで異なるvarchar型の振る舞いにsmalldatetime型に変換し、「通常の」クエリ

StackOverflow https://stackoverflow.com/questions/1969132

  •  21-09-2019
  •  | 
  •  

質問

私は基本的には、テーブルからすべてのレコードを返すビューを持っており、ISO-形式の日付であると考えられる列「isodate」を追加します。

CREATE VIEW [dbo].[v_bedarfe]
AS 
   SELECT *,convert(varchar(16),datum,20) As isodat FROM bedarfe
GO
"データム" - フィールドは、smalldatetime型です。 isodat上のクエリの結果だった...「驚くべき」、その点を明確にするために、私はこれを試してみました。

select top 10 datum,isodat,convert(varchar(16),datum,20) As isodat2 from v_bedarfe
つながっ

スクリーンショットクエリからの結果の

とそのルックスは非常に間違っています。

私はここで何かを「悪用」間違った期待やAMがありますが、私は私が間違っていることができるか見ないとここに戻って軌道に乗るためにどのように任意の提案をいただければ幸いです...

と仮定ので

おかげ

マイケル・
の(スクリーンショットはこれを掲示するとき、プレビューが表示されません正しく表示されます希望)

役に立ちましたか?

解決

ビューで*を使用することは危険です。テーブル定義が変更された場合、*は、列の間違っをマッピングするためのビューを引き起こす可能性があります。ドロップ&*せずにビューを再作成し、その修正場合、問題を参照してください。

P.S。変換20は、 MSDNページを参照して、yyyy-mm-dd hh:mi:ss(24h)、実際にはODBC標準でありますのます。

他のヒント

変換の最後のPARMは、出力フォーマットである。

20 => YYYY-MM-DD HH:MI:SS(24時間)

131 => DD / MM / YY HH:MI:SS:mmmAM

参照 MS SQL変換()

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top