歌舞团一起努力2:这个SQL语句错在哪里?

来源:百度文库 编辑:神马品牌网 时间:2024/04/27 22:18:27
OleDbCommand cmdpre=new OleDbCommand("Select top 1 title,id from article where uptime<"+dt+" order by uptime DESC",con);
提示:语法错误 (操作符丢失) 在查询表达式 'uptime < 2006-1-8 16:27:46' 中。
(DateTime dt=2006-1-8 16:27:46; )
(2006-1-8 16:27:46 中间带了很多空格,明显是格式不正确,但是在asp.net中我如何把这个日期进行转换才能和access数据库中的长时期进行比较"?

Access中的日期型量应该使用"#"界定符(与VB相同,在日期变量前后都加#),所以SQL语句应该是
"Select top 1 title,id from article where uptime<#"+dt+"# order by uptime DESC"

例如:
Select top 1 title,id from article where uptime<#2006-1-10 1:50:00# order by uptime DESC

我的回答错不了,用我的!!!

uptime是日期型的吗? 如果是,uptime < 试试 日期按字符串处理。"Select top 1 title,id from article where uptime<'"+dt+"' order by uptime DESC",

"Select top 1 title,id from article where uptime<#"+dt+" order by uptime DESC"
记得ACCESS数据库日期前要加#

加单引号或#号,根据数据库来选择

时间常数要用单引号(')引起来,如:uptime<'2005-8-30'或 sql="select * from admin where uptime <'" & t & "'" --注意别少了单引号,uptime是表中的一个字段名。
另外,如字符常量也是用单引号。