私はプロダクションサーバで青から出てきたエラーに困惑しています。SQL Serverのdatetime変換が動作しなくなった
var mis = from m in dtcx.valori
join p in dtcx.TEPARAMs on m.PARAMCD equals p.PARAMCD
where
blah blah blah
select new
{
dataRilevazione = m.dataRilevazione,
id =m.data>=new DateTime(2010,02,26)&&m.X==3&&m.Y==69?100: m.id,
blah blha
};
この条件を持つSQLクエリに変換します:これは魅力のように働いている
@p6='2010-02-26 00:00:00'
で
N'SELECT [t0].[dataRilevazione],
(CASE
WHEN ([t0].[data] >= @p6) AND ([t0].[X] = @p7) AND ([t0].[Y] = @p8) THEN @p9
は私のようなLINQ2SQLクエリをしていますそれは2日前からvarcharからdatetimeへの間違った変換があったと言って動作を停止して以来、年齢のために。
実際問題として、2010-02-26 00:00:00はもはや日付に変換されていません。私は
印刷
convert(datetime,'2010-02-26 00:00:00' )
をしようとした場合、私はすべてが働いていたとき、私は、ユーザー、もそのロケール、また私は何も変更していないので、
convert(datetime,'2010-02-26 00:00:00', datetime)
を使用して消え同じエラーを取得します知っている。
私は何ができるのでしょうか? おかげ
UPDATE:
-- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed
ので、言語がus_englishのために設定されている:SQL Serverのプロファイリング は、LINQ 2 SQLは正しい言語を設定しているようです!変換がまだ失敗するのはなぜですか? すべてのアイデアは高く評価されています...
「SELECT @@ LANGUAGE」は何を返しますか?また、SQL ServerのCONVERT( '2010-02-26 00:00:00'、datetime)の構文解析では不正確なので、常にエラーになります(あなたのためにタイプミスかもしれません)。データ型と値を交換する必要があります(つまり、 'CONVERT(datetime、 '2010-02-26 00:00:00')')。 –
p6パラメータをDECLARE @ p6 datetimeのようなdatetimeに設定しましたか? –
chris、my typo el ninho、linq2sqlによって生成されているため、SQL側で制御できません。 – pomarc