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

突然忘了时间搜索得不出结果,帮我看看

dhdhzzw 发布于 2008-04-15 17:03, 1664 次点击
select * from updata where [date] like '2007-3-5'order by user_id desc
得不出结果阿?

[[it] 本帖最后由 dhdhzzw 于 2008-4-15 17:14 编辑 [/it]]
12 回复
#2
tianyu1232008-04-15 17:29
你数据库中储存时间的格式是什么样的?
#3
不惑2008-04-15 23:45
select * from updata where [date] = '2007-3-5'order by user_id desc
select * from updata where [date] = '#2007-3-5#'order by user_id desc
这二个都试一下
#4
dhdhzzw2008-04-16 09:18
SQL数据库    默认值 getdate  所有的时间都值精确到分,不知怎么搞。

如:2007-3-15 9:43:00   
 =号可以查询
但我想查询那天的所有记录,想用like 却无法查出
#5
chg2008-04-16 12:01
“”怎么没有?
#6
madpbpl2008-04-16 12:21
[bo]以下是引用 [un]dhdhzzw[/un] 在 2008-4-16 09:18 的发言:[/bo]

SQL数据库    默认值 getdate  所有的时间都值精确到分,不知怎么搞。

如:2007-3-15 9:43:00   
 =号可以查询
但我想查询那天的所有记录,想用like 却无法查出 ...

like需要加“%”,好好想想,如果是具体的日期,直接用“=”就可以了
#7
tianyu1232008-04-16 12:29
对,楼上正解
select * from updata where [date] like '%2007-3-5%'order by user_id desc
#8
dhdhzzw2008-04-16 17:02
等号可以使用,,但使用like时
只能搜到like '%2007%' 可搜出数据。
写成 like '%2007-3-25%'或'%2007-03-25%'  都不报错,但无数据。。。怎么搞的?
#9
madpbpl2008-04-16 19:24
like本来就是模糊搜索,何必那么精确,如果要求精确直接用“=”不就可以了吗?不太理解楼主为什么一定要这样来搜索
#10
dhdhzzw2008-04-17 09:09
金牌,,,因为每天都有很多记录  '%2007-03-25%'这天也有很多记录,所以我想搜出来,这个需求应该正常吧,但却无法达到,我也一时没办法。求助啊〉
#11
madpbpl2008-04-17 10:17
按照楼主的说法,下面这句就可以
select * from updata where [date] = '2007-3-25'
楼主可否列个简单的表,我不明白为什么我这种写法不能实现你的需求呢?
#12
dhdhzzw2008-04-17 14:00
本来 2007-3-5有很多记录的
#13
caor19872008-04-17 15:24
datediff('d',2007-03-25,date)=0
这样试试看。
1