注册 登录
编程论坛 ASP技术论坛

access转sql2000后sql查询语句问题

lele2007 发布于 2009-10-14 18:51, 2046 次点击
sql="select * from beian where year(l_Titme)&month(l_Titme)&day(l_Titme)="&year(now())&month(now())&day(now())&" order by l_id desc"

这个sql语句是access数据库。。查询当天的记录。可以成功执行。。换到sql2000后失效了。。我是直接在sql2000企业管理器里导入access数据库中的数据。。

l_Titme:这个字段本来想写:l_Time  不小心打多了一个t字变成了:l_Titme...一直没改。。呵呵

现在换到了sql2000后这句sql语句应该如何改才可以在sql2000里查询到今天提交的数据?

l_Titme里存的内容是:2009-10-14 18:23:43  在数据库是:  getdate()  默认值
20 回复
#2
lele20072009-10-14 18:53
之前学习时用的是access。。。没用过sql2000。一时不知道怎么写

#3
chenguoxing5172009-10-14 23:04
sql="select * from beian where year(l_Titme)&month(l_Titme)&day(l_Titme)="&year(now())&month(now())&day(now())&" order by l_id desc"
换为
sql="select * from beian where year(l_Titme)+month(l_Titme)+day(l_Titme)="&year(now())&month(now())&day(now())&" order by l_id desc"
#4
lele20072009-10-15 09:07
chenguoxing517  早上好。。

按你的直接换了。。可是查询结果与原sql语句相同。。

结果是:暂时没有今天新提交记录

执行了  else  语句后面的代码了。。

输出的sql语句为:select * from beian where year(l_Titme)+month(l_Titme)+day(l_Titme)=20091015 order by l_id desc

l_Titme内容是:提交时间: 2009-10-15 9:03:39   是今天的数据。。但查询失败了。

请问是哪里的问题?

[ 本帖最后由 lele2007 于 2009-10-15 09:11 编辑 ]
#5
chenguoxing5172009-10-15 10:07
select * from beian where REPLACE(CONVERT(char, l_Titme, 111), '/', '')="&year(now())&month(now())&day(now())&" order by l_id desc
#6
lele20072009-10-15 10:16
chenguoxing517  

谢谢。。这条语句可以了。。执行成功。。太好了!!呵呵

REPLACE(CONVERT(char, l_Titme, 111), '/', '')   这个感觉好陌生呃。。
#7
aspic2009-10-15 10:16
sql="select * from beian where year(l_Titme)&month(l_Titme)&day(l_Titme)="&year(GetDate())&month(GetDate())&day(GetDate())&" order by l_id desc"
#8
aspic2009-10-15 10:17
以下是引用lele2007在2009-10-15 10:16:51的发言:

chenguoxing517  

谢谢。。这条语句可以了。。执行成功。。太好了!!呵呵

REPLACE(CONVERT(char, l_Titme, 111), '/', '')   这个感觉好陌生呃。。
转换类型~
#9
lele20072009-10-15 10:20
看似乎是强制转换类型为char
replace 把  /  替换成  空。。
时间里好像没有 /  这个字符。
#10
lele20072009-10-15 10:24
以下是引用aspic在2009-10-15 10:16:54的发言:

sql="select * from beian where year(l_Titme)&month(l_Titme)&day(l_Titme)="&year(GetDate())&month(GetDate())&day(GetDate())&" order by l_id desc"
aspic版主。。这个不行。。。  查询失败。。
#11
aspic2009-10-15 10:26
不行我也不是版主啊 我是看到动网论坛里面有类似的 所以贴出来 没测试过
#12
孤独冷雨2009-10-15 10:27
sql="select * from beian where convert(varchar(10),l_time,120) =convert(varchar(10),getdate(),120)  order by l_id desc"
#13
aspic2009-10-15 10:28
sql="select * from beian where DateDiff(day, l_Titme, getdate()) = 0 order by l_id desc"
这样呢
#14
lele20072009-10-15 10:29
以下是引用aspic在2009-10-15 10:26:05的发言:

不行我也不是版主啊 我是看到动网论坛里面有类似的 所以贴出来 没测试过
就快是了。。呵呵。你好热心帮助人 。。已经是版主了。。

谢了。。
#15
lele20072009-10-15 10:31
以下是引用孤独冷雨在2009-10-15 10:27:40的发言:

sql="select * from beian where convert(varchar(10),l_time,120) =convert(varchar(10),getdate(),120)  order by l_id desc"
这个我测试了一下。。查询不到。。可能有跟我的转换有关系。。我的是从access转换成sql2000数据库的
#16
lele20072009-10-15 10:32
以下是引用aspic在2009-10-15 10:28:39的发言:

sql="select * from beian where DateDiff(day, l_Titme, getdate()) = 0 order by l_id desc"这样呢


这个可以了。。这个能看懂。。。哈哈。。对比时间。。这个高。。
#17
孤独冷雨2009-10-15 10:33
我倒,我已经测试过了没有问题的。你那时间字段是GETDATE()吗?如果是一定没有问题!
#18
lele20072009-10-15 10:39
是的。。默认值是getdate()

提交后时间格式是:2009-10-15 9:37:06   类似这样的。。

我直接把sql语句替换过去。。点击没有反应。。应该是我程序出了问题。。

sql="select * from beian where convert(varchar(10),l_time,120) =convert(varchar(10),getdate(),120)  order by l_id desc"

convert(varchar(10),l_time,120)   不好意思。。这里错了。呵呵。。字段是:l_titme...。。呵呵。。

我一开始就说了嘛。。设计数据库时本来想写:l_Time  后来不小心打多了一个  t  变成了  l_Titme了。。程序写好后才发现就没改了。。

sql="select * from beian where convert(varchar(10),l_Titme,120) =convert(varchar(10),getdate(),120)  order by l_id desc"

刚我测试了一下。。这个也可以。呵呵。。
#19
chenguoxing5172009-10-15 10:52
好多看似细小的东西还真只有自己真正去测试了才知道对与错啊!
#20
lele20072009-10-15 11:04
恩。是呀。。

写程序时,有耐心还得要细心。。

有时候一个空格问题也能引发出问题。。

就如:

sql="select * from beian whereconvert(varchar(10),l_Titme,120) =convert(varchar(10),getdate(),120)  order by l_id desc"

where之间没有空格。。我刚测试了一下。。不行。。
#21
xpowoow2009-10-17 00:37
在查询分析里试一下,组合sql.没什么?
1