从字符串向 datetime 转换时失败。

stringlgtm=DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss");stringloginsql="select*fromlog... string lgtm = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string loginsql = "select * from logintm where roleid='" + DropDownList1.SelectedValue + "' and '"+lgtm+" '- logintime<='" + DropDownList2.SelectedValue + "'order by logintimeid desc";
这是一个关于搜索最近几天登陆记录的语句,不知道哪错了,请高手帮帮忙!!
roleid本来就是INT型的,'- logintime<='并没有引号,那是前面一个跟后面一个,不是他的
我用的是DATE LGTM=DATETIME.NOW,那个不是画蛇添足,那是严谨,不用抢的那么快,分是给高手的
展开
 我来答
虎用95
2008-12-30 · TA获得超过431个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:70.8万
展开全部
lgtm转化之后假设变成了:
lgtm = "2008-12-25 11:22:33"...

你这个SQL语句加进去成什么了??
loginslq = "select * from logintm where roleid="....
关键是你的“and”后面:
..."2008-12-25 11:22:33 - logintime <=” ....

你能告诉我字符串“2008-12-25 11:22:33”减去(-)字符串 logintime 是什么东西吗?

改改你这个逻辑吧……

哥们,你自己设个断点看看你那个“loginsql”拼出来是个什么字符串你不就知道错在哪儿了吗?

你这个字符串类似于:
loginsql = "select * from logintm where roleid='12345' and '2008-12-25 11:22:33'- 2008-12-30 12:00:00 <='3'order by logintimeid desc";

......“'2008-12-25 11:22:33'- 2008-12-30 12:00:00 <='3'”这一串乱七八糟的你让SQL怎么运算?
卞米琪蛮萝
2020-02-26 · TA获得超过3.1万个赞
知道小有建树答主
回答量:1.1万
采纳率:34%
帮助的人:643万
展开全部
没看到你的代码,请试试以下转换方式,我试过,没问题的。
/**
*
转换成日期
*
*
@param
dateString
*
@param
formatString
*
@return
*/
public
static
Date
parse(String
dateString,
String
formatString)
{

SimpleDateFormat
df
=
new
SimpleDateFormat(formatString);

try
{

return
df.parse(dateString);

}
catch
(ParseException
e)
{

return
null;

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卷今夏侯含巧
2020-02-10 · TA获得超过3679个赞
知道大有可为答主
回答量:3040
采纳率:34%
帮助的人:206万
展开全部
明显会出错喽,你数据库的dl_time字段应该是datetime类型,那你是经过下面得到时间string
time
=
DateTime.Now.ToString();
string
sql
=
"insert
into
usertime
(username,dl_time)
values
('"+
name
+"','"+
time
+"')"; 此时,time是string.是无法自动转为datetime型的。楼主为什么不用sql提供的提取系统时间函数呢》??string
sql
=
"insert
into
usertime
(username,dl_time)
values
('"+
name
+"','"+
time
+"')"; 改为以下:string
sql
=
"insert
into
usertime
(username,dl_time)
values
('"+
name
+"',getdate())"; 这样就搞定了?何必还要用C#的NOW再转sql的datetime.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海V飞天
2008-12-29 · TA获得超过450个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:268万
展开全部
string lgtm = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
("yyyy-MM-dd HH:mm:ss"); 画蛇添足

roleid ID是VCHAR吗 还加引号 一般都是int的啊

'- logintime<=' 这里要这个引号干嘛呢

time传值的方法和int一样 也是不要引号的啊 错误真多

select * from logintm where roleid='1' and '2 '- logintime<='3'order by logintimeid desc

这是你的运行结果 int型的要''吗 '2 '是什么东东 字符型要减什么呢 '3'这就是替换你的时间 你看看那个time类型是等于字符型的
还等什么高手 就你这点分值得我抢吗 真是的

string loginsql = "select * from logintm where roleid=" + DropDownList1.SelectedValue + " and "+lgtm+" - logintime<=" + DropDownList2.SelectedValue + "order by logintimeid desc";

用这句话试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜扬迟沛
2019-01-01 · TA获得超过3901个赞
知道大有可为答主
回答量:3094
采纳率:29%
帮助的人:192万
展开全部
有可能是环境的原因,你可以使用显示转换:
eg:String^
MySQL
=
"Select
*
From
店内消费报表视图
Where
店内消费报表视图.记帐时间
Between
'"
+
this->开始日期DateTimePicker->Value->ToString("yyyy-MM-dd
HH:mm:DD")
+
"'
AND
'"
+
this->结束日期DateTimePicker->Value->ToString("yyyy-MM-dd
HH:mm:DD")
+
"'";
这样应该就没有问题了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式