2016-08-23 12 views
-1
select 
    DateDiff(Day, convert(datetime,'2/1/'+cast(Year(BeginDate) as varchar)), 
    convert(datetime,'2/29/'+cast(Year(BeginDate) as varchar))) 
from [table] 
where (begindate is not null and enddate is not null) 

をもたらしIエラーdatetimeデータ型にcharデータ型の変換は、範囲外の日時value.sqlに

内にCHARデータ型の変換を実行してい範囲外日時の値の中で という日時データ型が発生しました。

BEGINDATEの例:2014年2月12日00:00:00.000 ENDDATEの例:2014年2月16日00:00:00.000

右方向の方に私を指す助けてください、ありがとう。

+0

「BeginDate」の例が '2014-02-12'であれば、' '2/29/2014''はdatetimeにどのように変換されると思いますか? 2014年は**うるさい年ではありません – Lamak

+0

うん、私はそれをキャッチしていただきありがとうございます。 – user3083228

答えて

-1

このエラーは、異なる言語がSQL Serverの日付を表し、解析する方法によるものです。英語が既定の言語として設定されている場合、SQL ServerはMM/DD/YYYY形式の日付を想定しています。他の言語では、DD/MM/YYYY形式が必要です。 SQL Serverは、提供されるものとSQL Serverが期待しているものとの間に不一致がある場合にこのエラーをスローします。

+0

Plz。あなたの答えに例を投稿することを検討する – Trimax

関連する問題