2017-07-19 20 views
0

stockedにはnvarchar(50)という形式の日付が含まれています。この形式の日付は('yyyy/mm/dd')です。これを日付に変換したいので、いくつかの日付を追加してコンパイルすることができます。私がこれまで取り組んできた見てきましたSQLサーバーの文字列から日付への変換

何も(キャストについて多くのことをしないと変換)し、常にそのようなものになった:

「メッセージ242、レベル16、状態3、ライン1 varcharデータ型をdatetimeデータ型に変換すると、範囲外の値が発生しました。

+0

最初のデータベース設計ミス:_列がnvarchar(50)日付は – RiggsFolly

+0

のmysqlまたはsqlサーバーの列ですか? –

+0

[STR_TO_DATE](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date)を使用してください。 –

答えて

0

使用

ISDATE(表現)

戻り値1式が有効な日付、時刻、または日時の値である場合には、 その他の場合、0

1

ほとんどの場合、正しく変換できないデータがあります。問題のあるデータを参照するには、以下のようにあなたは変換しないで管理していない、私はSQLサーバー2014に挿入されたExcelの表を持っていた

declare @tableName table(stocked nvarchar(50)); 
insert into @tableName values 
('2017/12/31'),('2017/11/11'),('2017/11/13'),('2017/13/11'); 
SET DATEFORMAT ymd; 

select 
stocked, 
TRY_PARSE(stocked as datetime) 
from @tableName 
where TRY_PARSE(stocked as datetime) is NULL; 
0

Basiclyを(これはSQLサーバー上の2012で動作します)クエリを使用することができますデータは挿入時にデータに変換されますが、後で変換するよりも挿入の仕方に苦労することはありません。

関連する問題