2014-01-18 18 views
1

這裏是我的查詢字符串如何解決傳遞日期時間價值paramaterized查詢錯誤

SELECT
Payment
,Balance
,PatientNo
FROM
[GP_DB].[dbo].[GP]
where GP.GPDate= (SELECT CONVERT(VARCHAR(24),@GPDate,103))

GPDate是一個日期類型列,而不是日期時間

和我通過參數這樣

cmd_select_treatment.Parameters.AddWithValue(
      "@GPDate" 
      ,Convert.ToDateTime(dateTimePicker1.Value)); 

但發生以下錯誤

從字符串轉換日期和/或時間時轉換失敗。

+0

標準方法是在線上查看TSQL .... –

+0

您使用的是什麼sql ??你用的是asp.net嗎? –

回答

0

@var is DateTime select cast(convert(varchar(8),@ var,112)as Date

2

GPDate爲Date類型列

如果它是一個DATE柱和你Convert.ToDateTime調用返回一個DateTime對象,然後不與CAST費神。

Convert.ToDateTime(dateTimePicker1.Value).Date 
-1

我認爲你需要添加圖片子句在你的日期轉換:

WHERE GP.GPDate = @GPDate 

如果dateTimePicker1可能包含時間成分,你不關心這則乾脆利用其價值之前將其丟棄像例如

to_date('18/01/2014 10:15:20','dd/mm/yyyy hh24:mi:ss'); 

這應該解決您的問題