从字符串向 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,那个不是画蛇添足,那是严谨,不用抢的那么快,分是给高手的 展开
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,那个不是画蛇添足,那是严谨,不用抢的那么快,分是给高手的 展开
10个回答
展开全部
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怎么运算?
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怎么运算?
展开全部
没看到你的代码,请试试以下转换方式,我试过,没问题的。
/**
*
转换成日期
*
*
@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;
}
}
/**
*
转换成日期
*
*
@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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
明显会出错喽,你数据库的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.
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.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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";
用这句话试试
("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";
用这句话试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有可能是环境的原因,你可以使用显示转换:
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")
+
"'";
这样应该就没有问题了。
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")
+
"'";
这样应该就没有问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询