日期比较的问题!

seaman0220 2005-04-19 01:13:22
select t_form_card.*,t_item_card.* from t_form_card,t_item_card where c_member_id = 15 AND t_form_card.c_id=t_item_card.c_form_id and Convert(char(8),c_date,112) <= Convert(char(8),'2005-4-31',112) and Convert(char(8),c_date,112) >= Convert(char(8),'2005-4-1',112) order by c_date desc取不出来值


而select t_form_card.*,t_item_card.* from t_form_card,t_item_card where c_member_id = 15 AND t_form_card.c_id=t_item_card.c_form_id and Convert(char(8),c_date,112) <= Convert(char(8),'2005-4-31',112) and c_date >= Convert(char(8),'2005-4-1',112) order by c_date desc
就能取出来值,奇怪

有人说下为什么吗?
...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hchxxzx 2005-04-19
  • 打赏
  • 举报
回复
问题你的数据库是什么?每一种数据库都有不同的时间比较方法.你要先写清楚
goldentimecym 2005-04-19
  • 打赏
  • 举报
回复
看这样的问题就好像是在玩大家来找茬
真累
直接用datediff(dy,c_date,'2005-4-31')>=0 and datediff(dy,c_date,'2005-4-1')<=0
也行
syeerzy 2005-04-19
  • 打赏
  • 举报
回复
类型造成错误
贝克汉鸭 2005-04-19
  • 打赏
  • 举报
回复
对了,convert char(8)也不够用阿,应该是char(10)
贝克汉鸭 2005-04-19
  • 打赏
  • 举报
回复
select t_form_card.*,t_item_card.* from t_form_card,t_item_card where c_member_id = 15 AND t_form_card.c_id=t_item_card.c_form_id and Convert(char(8),c_date,112)
between '2005-04-01' and '2005-04-31'
startray 2005-04-19
  • 打赏
  • 举报
回复
是的
这样会有问题的
活靶子哥哥 2005-04-19
  • 打赏
  • 举报
回复
'2005-4-31'
lhcoolhacker 2005-04-19
  • 打赏
  • 举报
回复
Convert(char(8),c_date,112)为字符型,进行数值比较有问题。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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