帮忙看看这个简单的SQL!

fanyang111 2004-11-22 11:12:48
表table1有如下一批数据:

qsb3 qsb7
2004-11-17 09:17:00 2004-11-17 11:12:00
2004-11-17 07:21:00 2004-11-17 12:17:00
2004-11-17 11:17:00 2004-11-17 00:00:00

我用以下两种SQL 怎么结果不一样:
1. select * from table1 where left(qsb3,10)=left(qsb7,10)(显示结果为正常)

2. select * from qzj1
where year(qsb3)=year(qsb7) and month(qsb3)=year(qsb7) and day(qsb3)=day(qsb7)(结果为零)
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxai 2004-11-22
  • 打赏
  • 举报
回复
为什么要这么复杂。
这样不行吗:
2. select * from qzj1 where Convert(char,qsb3,0)=Convert(char,qsb7,0)
了缘 2004-11-22
  • 打赏
  • 举报
回复
哈哈,1楼好厉害,month(qsb3)=year(qsb7)
davorsuker39 2004-11-22
  • 打赏
  • 举报
回复
不一样!
你前面的选择2004-11-17 后面的可能是2004 11 17 如果数据里面有2003,但是没有2003-11-17
但是后面的选择就会组合为2003-11-17 所以结果不一样!后面的多出其他结果
了缘 2004-11-22
  • 打赏
  • 举报
回复
qzj1
是什么表,是否有这两个字段
xingfuniao 2004-11-22
  • 打赏
  • 举报
回复
2. select * from qzj1
where year(qsb3)=year(qsb7) and month(qsb3)=year(qsb7) and day(qsb3)=day(qsb7)

你没发现错误么,呵呵
where year(qsb3)=year(qsb7) and month(qsb3)=month(qsb7) and day(qsb3)=day(qsb7)
fanyang111 2004-11-22
  • 打赏
  • 举报
回复
sorry !sorry! 我写错了.

34,575

社区成员

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

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