另一个SQL语句 (查询某表当天全部信息)

skttkkjj 2007-06-22 10:42:26
select * from Tbl_personlog where convert(char(10),date,120)=convert(char(10),getdate(),120)

这个到是可以!就是有点麻烦!

请教高手给个简单点的
...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2007-06-22
  • 打赏
  • 举报
回复
楼主这个date字段是什么类型的?日期类型还是字符串类型。
上面提供的都可以,不过列上应用函数,明显降低查询效率,不建议使用。

如果是日期类型
declare @date datetime
set @date=getdate()
select * from Tbl_personlog where date>=DateAdd(day, DateDiff(day,0,@date), 0) and date < DateAdd(day, DateDiff(day,0,@date)+1, 0) 即可

如果是字符串格式,就怕格式不一致
格式一致的话(比较数据转换成一样格式)
select * from Tbl_personlog where date>=convert(varchar(10),@date,120) and date < convert(varchar(10),DateAdd(day, DateDiff(day,0,@date)+1, 0) ,120)

格式不一致就需要转化为时间(这个最糟糕,不能有效应用索引,效率最为低下)
select * from Tbl_personlog where cast(date as datetime)>=DateAdd(day, DateDiff(day,0,@date), 0) and date < DateAdd(day, DateDiff(day,0,@date)+1, 0)
w75251455 2007-06-22
  • 打赏
  • 举报
回复
路过`_`!
skttkkjj 2007-06-22
  • 打赏
  • 举报
回复
bill024(咖啡熊)

chuifengde(树上的鸟儿)

MSN是多少 啊 小弟以后有问题想请教你们
肥胖的柠檬 2007-06-22
  • 打赏
  • 举报
回复
select * from Tbl_personlog where datediff(dd,date,getdate())=0
skttkkjj 2007-06-22
  • 打赏
  • 举报
回复
感激ing 你的MSN是?

可以加你吗?
chuifengde 2007-06-22
  • 打赏
  • 举报
回复
select * from tbl_personlog where datediff(day,date,getdate())=0
bill024 2007-06-22
  • 打赏
  • 举报
回复
select * from Tbl_personlog where datediff(day,date,getdate())=0

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧