2010-04-19 89 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