2010-04-19 45 views
0

我在運行應用程序Incorrect syntax near 12時遇到了這個錯誤,在調試時我發現這個錯誤是由於#和日期一起引起的。vb.net中的日期格式錯誤?

Dim backdate as datetime 
backdate = DateTime.Now.AddDays(-1) 

上的數據綁定到電網以過濾該錯誤引起附近有語法錯誤12的回溯記錄。

myqry = " select SRNO,SUBJECT,ID where datesend =" backdate 

我現在想只提取日期或我將劃分成日期的日,月和年與DATEPART,並考慮到一個變量或轉換日期或我應該怎麼辦,請幫忙???

+0

需要使用參數。你連接了哪個數據庫? – SLaks 2010-04-19 12:00:00

+0

SQL 2000 Server – ahmed 2010-04-19 12:06:46

+0

數據庫中的datesend字段是否包含時間? – 2010-04-19 12:12:41

回答

2

這是正確的說法:

myqry = "select SRNO,SUBJECT,ID where cast(convert(char(10), datesend, 121) as datetime) ='" & backdate.ToString("yyyy-MM-dd") & "'" 

演員和轉換:http://msdn.microsoft.com/en-us/library/ms187928.aspx

與參數121轉換將轉換成以下格式:yyyy-mm-dd hh:mi:ss.mmm(24小時),從該字符串中,我們得到前10個字符(char(10))。

沒有參數:

myqry = "Select SRNO,SUBJECT,ID From ... Where convert(char(10), datesend, 121) = convert(char(10), dateadd(day,-1,getdate()), 121)" 
+0

('yyyy-MM-dd')&「'」在我使用這個聲明時被禁用? – ahmed 2010-04-19 12:31:00

+0

對不起抱歉抱歉.....我得到了這個......完美的夥伴!太感謝了 。但有一件事我想在上面的陳述中知道abt「121」? – ahmed 2010-04-19 12:35:06

+0

哦...這種格式'yyyy-MM-dd'。得到它了。 – ahmed 2010-04-19 12:40:05

0

請注意,您在查詢中缺少與號(&)。另外,儘量把你的日期在引號中查詢:

myqry = " select SRNO,SUBJECT,ID where datesend ='" & backdate.ToString('yyyy-MM-dd') & "'" 
+0

shukriya Sarfraz bhai,我非常感謝你的幫助。 – ahmed 2010-04-19 12:38:38

+0

@ahmed:歡迎你兄弟:) – Sarfraz 2010-04-19 13:04:20

0

myqry = 「選擇SRNO,SUBJECT,ID其中datesend = '」 & backdate.tostring( 「DD MMMM YYYY」)& 「'」

+0

不在線報價。 – CResults 2010-04-19 12:02:09

+0

jip,加上他們,thx :) – 2010-04-19 12:04:54

+0

謝謝Daniel Daniel的回覆。 – ahmed 2010-04-19 12:44:57