注册 登录
编程论坛 SQL Server论坛

[求助]查询语句

leisky 发布于 2007-02-09 11:43, 514 次点击

在Leaveword表里有一个是CreateDate列.该列下都是日期
如:
2006-4-9 22:08:20
2006-4-9 22:05:06
2006-4-9 22:03:26
2007-1-23 18:23:58
可是我用
select count(*) from Leaveword where CreateDate like '%2007-1-23%'却始中返回0
这里怎么会事??.查询某日有几行应该怎么查询.请指点

7 回复
#2
Kendy1234562007-02-09 11:53
like 是字符串匹配 你的create date是列

你可以用 select count(*) from Leaveword where convert(varchar,CreateDate,101) = '01/23/2007'
#3
棉花糖ONE2007-02-09 11:58
select count(1) from Leaveword where convert(varchar,CreateDate,120) like '%2007-01-23%'
不建议这样写,这样没法使用索引,用下面的语句代替
select count(1) from Leaveword where CreateDate>='2007-1-23' and CreateDate<'2007-1-24'

[此贴子已经被作者于2007-2-9 12:19:38编辑过]

#4
Kendy1234562007-02-09 12:08
以下是引用棉花糖ONE在2007-2-9 11:58:41的发言:
select count(1) from Leaveword where convert(varchar,CreateDate,120) like '%2007-01-23%'
不建议这样写,这样没法使用索引,用下面的语句代替
select count(1) from Leaveword where CreateDate>='2007-1-23' and CreateDate<'2007-1-24'

帮你改个错

#5
棉花糖ONE2007-02-09 12:14
太粗心了,谢谢楼上的
#6
leisky2007-02-09 12:42
2楼那个老兄.请问要是在.NET里怎么能得到当前的日期的形式为01/23/2007 DateTime.Now.ToShortDateString()得到的日期形式是2007-1-23这样的..


3楼的那个select count(1) from Leaveword where CreateDate>='2007-1-23' and CreateDate<'2007-1-24'
好像返回的还是0..呵呵
谢谢几位老兄的帮忙

#7
棉花糖ONE2007-02-09 12:56
我用你的方法返回是0,用我自己的方法返回的不是0啊
#8
Kendy1234562007-02-09 17:42
以下是引用leisky在2007-2-9 12:42:28的发言:
2楼那个老兄.请问要是在.NET里怎么能得到当前的日期的形式为01/23/2007 DateTime.Now.ToShortDateString()得到的日期形式是2007-1-23这样的..


3楼的那个select count(1) from Leaveword where CreateDate>='2007-1-23' and CreateDate<'2007-1-24'
好像返回的还是0..呵呵
谢谢几位老兄的帮忙

.Net里面用format函数

1