
[SQL Server]从字符串转换为 datetime 时发生语法错误 15
sql="selectcount(id)asonesfrom[data]whereemdate>'2009-01-01'andCONVERT(VarChar(100),a...
sql="select count(id) as ones from [data] where emdate>'2009-01-01' and CONVERT(VarChar(100),arrivetime,23)>='"×&"' and CONVERT(VarChar(100),arrivetime,23)<='"×s&"' and station like '%"&zone&"' and provider like '%"&provide&plu&"'and poster like '%"&poster&"' and leadtime is not null and station<>'库房' and backtime is not null and DATEADD(day,1,CONVERT(VarChar(100),backtime,23))<=arrivetime "
数据库中 backtime 字段为字符串格式,arrivetime 是datetime 格式
请求给与正确的语句,
筛选 backtime 和 arrivetime 相差小于等于一天的数据集
运行提示
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]从字符串转换为 datetime 时发生语法错误。
sql="select count(id) as ones from [data] where emdate>'2009-01-01' backtime is not null and DATEADD(day,1,CONVERT(VarChar(100),backtime,23))<=arrivetime "
这个句子也是,
关键错误是这句:DATEADD(day,1,CONVERT(VarChar(100),backtime,23))<=arrivetime
其他的测试没有问题 展开
数据库中 backtime 字段为字符串格式,arrivetime 是datetime 格式
请求给与正确的语句,
筛选 backtime 和 arrivetime 相差小于等于一天的数据集
运行提示
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]从字符串转换为 datetime 时发生语法错误。
sql="select count(id) as ones from [data] where emdate>'2009-01-01' backtime is not null and DATEADD(day,1,CONVERT(VarChar(100),backtime,23))<=arrivetime "
这个句子也是,
关键错误是这句:DATEADD(day,1,CONVERT(VarChar(100),backtime,23))<=arrivetime
其他的测试没有问题 展开
5个回答
展开全部
sql="select
count(id)
as
ones
from
[data]
where
emdate>'2009-01-01'
backtime
is
not
null
and
DATEADD(day,1,backtime))<=arrivetime
如果varchar中存储的字串与日期格式相符,进行datetime运算时可以显示转换
count(id)
as
ones
from
[data]
where
emdate>'2009-01-01'
backtime
is
not
null
and
DATEADD(day,1,backtime))<=arrivetime
如果varchar中存储的字串与日期格式相符,进行datetime运算时可以显示转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DATEADD(day,1,CONVERT(VarChar(100),backtime,23))这里面的第三个参数怎么是varchar(100),不是datetime类型的么?你转换他干吗根本没必要转啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是backtime
字段有非日期格式的值
用isdate(backtime)
先查查data
表
backtime
字段是否有非法值
如果输入表达式是有效的日期,那么
ISDATE
返回
1;否则,返回
0。
字段有非日期格式的值
用isdate(backtime)
先查查data
表
backtime
字段是否有非法值
如果输入表达式是有效的日期,那么
ISDATE
返回
1;否则,返回
0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
挺简单的你写的这么复杂!
看了半天才看懂!
你用 Substring 提取字符串!
把天数提取出来!
在用 select datepart(dd,参数)
把两个提取出来在比较不就玩了!
我建议你写成函数真的!
调用函数就行了!
你这的写也不便与维修!很麻烦的
看了半天才看懂!
你用 Substring 提取字符串!
把天数提取出来!
在用 select datepart(dd,参数)
把两个提取出来在比较不就玩了!
我建议你写成函数真的!
调用函数就行了!
你这的写也不便与维修!很麻烦的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用datediff吧!
datediff(d,backtime,arrivetime)<=1 (筛选 backtime 比 arrivetime 小于等于一天的数据集) 若还要筛选 arrivetime 比 backtime 小于等于一天的数据集 则还要家 or datediff(d,arrivetimee,backtim)<=1
哪有你那么麻烦!
datediff(d,backtime,arrivetime)<=1 (筛选 backtime 比 arrivetime 小于等于一天的数据集) 若还要筛选 arrivetime 比 backtime 小于等于一天的数据集 则还要家 or datediff(d,arrivetimee,backtim)<=1
哪有你那么麻烦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询