2011-06-25 6 views
-3

私はこのレポートに対して2つの日付を選択するライン・ウィークリー・レポートを作成しています。たとえば、ユーザーは2つの日付の間でデータを表示する必要があります。私はWebアプリケーションでやっています。これは、SQL Serverで実行しますが、ときに私は、文字を変換する際ライン・ウィークリー・レポート

の変換が失敗したように、それはエラーを示しています私のアプリケーションでそれを含めています

@"select distinct d1.machine as Machine,CASE WHEN t.time BETWEEN '1900-01-01 7:00:00.000' 

AND '1900-01-01 14:59:59.999' THEN 'Shift1' WHEN t.time BETWEEN '1900-01-01 

15:00:00.000' AND '1900-01-01 22:59:59.999' THEN 'Shift2' WHEN t.time BETWEEN '1900-01-01 

23:00:00.000' AND '1900-01-01 23:59:59.999' THEN 'Shift3' WHEN t.time BETWEEN '1900-01-01 

00:00:00.000' AND '1900-01-01 06:59:59.999' THEN 'Shift3' END as Shiftname,CASE WHEN 

t.time BETWEEN '1900-01-01 7:00:00.000' AND '1900-01-01 14:59:59.999' THEN 'Operator1' 

    WHEN t.time BETWEEN '1900-01-01 15:00:00.000' AND '1900-01-01 22:59:59.999' 

THEN 'Operator2' WHEN t.time BETWEEN '1900-01-01 23:00:00.000' AND '1900-01-01 

23:59:59.999' THEN 'Operator3' WHEN t.time BETWEEN '1900-01-01 00:00:00.000' AND '1900-01- 

01 06:59:59.999' THEN 'Operator3' END as OperatorName, Date=convert(varchar 

(12),t.date,101),Time=convert(varchar(8),t.time,8),Temprature as 

Temperature,Pressure,Co2,Do2,pH,Speed,Flow from datalogging1 d1 inner join temprature3 

t on d1.date=t.date inner join pressure3 p on p.date=t.date and datepart(hour,t.time) 

=datepart(hour,p.time) and datepart(minute,t.time)=datepart(minute,p.time) inner join co23 

c on c.date=t.date and datepart(hour,t.time)=datepart(hour,c.time) and datepart 

(minute,t.time)=datepart(minute,c.time) inner join do23 d on d.date=t.date and datepart 

(hour,t.time)=datepart(hour,d.time) and datepart(minute,t.time)=datepart(minute,d.time) 

inner join ph3 h on h.date=t.date and datepart(hour,t.time)=datepart(hour,h.time) and 

datepart(minute,t.time)=datepart(minute,h.time) inner join speed3 s on s.date=t.date and 

datepart(hour,t.time)=datepart(hour,s.time) and datepart(minute,t.time)=datepart 

(minute,s.time) inner join flow3 f on f.date=t.date and datepart(hour,t.time)=datepart 

(hour,f.time) and datepart(minute,t.time)=datepart(minute,f.time) where t.date 

between '"[email protected]"' and '"[email protected]"' and line='"[email protected]"' union 

select distinct d1.machine as Machine, CASE WHEN t.time BETWEEN '1900-01-01 7:00:00.000' 

AND '1900-01-01 14:59:59.999' THEN 'Shift1' WHEN t.time BETWEEN '1900-01-01 

15:00:00.000' AND '1900-01-01 22:59:59.999' THEN 'Shift2' WHEN t.time BETWEEN '1900-01-01 

23:00:00.000' AND '1900-01-01 23:59:59.999' THEN 'Shift3' WHEN t.time BETWEEN '1900-01-01 

00:00:00.000' AND '1900-01-01 6:59:59.999' THEN 'Shift3' END as Shiftname,CASE WHEN 

t.time BETWEEN '1900-01-01 7:00:00.000' AND '1900-01-01 14:59:59.999' THEN 'Operator1' 

WHEN t.time BETWEEN '1900-01-01 15:00:00.000' AND '1900-01-01 22:59:59.999' 

THEN 'Operator2' WHEN t.time BETWEEN '1900-01-01 23:00:00.000' AND '1900-01-01 

23:59:59.999' THEN 'Operator3' WHEN t.time BETWEEN '1900-01-01 00:00:00.000' AND '1900-01- 

01 6:59:59.999' THEN 'Operator3' END as OperatorName,Date=convert(varchar 

(12),t.date,101),Time=convert(varchar(8),t.time,8),Temprature as 

Temperature,Pressure,Co2,Do2,pH,Speed,Flow from datalogging1 d1 inner join temprature3 t 

on d1.date=t.date inner join pressure3 p on p.date=t.date and datepart(hour,t.time) 

=datepart(hour,p.time) and datepart(minute,t.time)=datepart(minute,p.time) inner join co23 

c on c.date=t.date and datepart(hour,t.time)=datepart(hour,c.time) and datepart 

(minute,t.time)=datepart(minute,c.time) inner join do23 d on d.date=t.date and datepart 

(hour,t.time)=datepart(hour,d.time) and datepart(minute,t.time)=datepart(minute,d.time) 

inner join ph3 h on h.date=t.date and datepart(hour,t.time)=datepart(hour,h.time) and 

datepart(minute,t.time)=datepart(minute,h.time) inner join speed3 s on s.date=t.date and 

datepart(hour,t.time)=datepart(hour,s.time) and datepart(minute,t.time)=datepart 

(minute,s.time) inner join flow3 f on f.date=t.date and datepart(hour,t.time)=datepart 

(hour,f.time) and datepart(minute,t.time)=datepart(minute,f.time) where t.date=dateadd 

(day,1,'"[email protected]"') and line='"[email protected]"' order by 

date,time,machine,shiftname,operatorname" 

:私はこのようなコードを書かれている

string to smalldatetimeデータ型。

誰もが私にこれを助けることができますか?

答えて

1

代わりのtxtfromdatetxttodateのための文字列連結を使用してあなたがDateTime、またはSqlDateTimeに変換した後、パラメータとして渡す試してください。あなたの問題は、ほとんどの場合、これらのコントロールのテキストがSQL Serverが解釈できないようにフォーマットされているかどうかにあります。

+0

@ yuck-ありがとうございます.. – Sweety