nvarchar(max)
として格納されているSQL日付フィールドがあります。datetimeとして格納されたnvarcharをintに変換しようとしています
例:私はint
にこれを変換する必要が4/7/2016 12:50:03 AM
。
私はこれを持っている:cast(convert(char(8), DateField,112) as int)
が、私はデータ型intにvarchar型の値が '5/22/201' を変換するとき
変換が失敗し、エラーメッセージが出てい
明らかに、/
はint
ではありません。助言がありますか??
は、なぜあなたはNVARCHAR 'として日付を格納しています(MAX) '?データを適切なデータ型として保存してください...これはデータを格納するだけの膨大なオーバーヘッドではありませんが、データを照会しようとすると多くの複雑さが生じます。それが言われています...あなたは、これの「INT」表現が正確に何になると思いますか? – Siyual
@Siyual: 'CONVERT(INT、getdate())'は1900-01-01以降の日数を返します。 –
@ RossPresserはい、それはOPが日付の彼の 'INT'表現をそのようにしたいと言っているわけではありません。彼は「20160407」または「472016」またはEPOCH時間、または最後のスターウォーズ映画からの分数を望むことができます。それは完全に定義されていません... – Siyual