比大小VARCHAR 请用T-SQL告诉我吧!

zhang86817 2007-07-03 01:39:21
请问我有一句话是这样的。
select count(*) from content where author='系统管理员' and channelid=240 and outdatetime>='20030701000000'

outdatetime 这个字段是 varchar 型
我如何拿他来比大小呢。这样查出来没结果。
outdatetime 里面有 一个 20070725999999 的 肯定是比20030701000000大 但是没结果,谁能告诉我改怎么做,如果不行 可以截取后面6位,
请高手指点,谢谢!!
...全文
251 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
TerryLhw1983 2007-07-04
  • 打赏
  • 举报
回复
declare @a varchar (20)
set @a = '20030701000000'
select convert(datetime,substring(@a,1,4)+'-'+substring(@a,5,2)+'-'+substring(@a,7,2) ,126 )

你的outdatetime的就相当于这个@a。
转换成datetime就可以比较了。
SassyBoy 2007-07-04
  • 打赏
  • 举报
回复
我发现 paoluo(一天到晚游泳的鱼) ,常到.net版抢sql的分。:)
antoniusguo 2007-07-04
  • 打赏
  • 举报
回复
author = '系统管理员'
channelid = 240
应该是这里有个条件不符合
dcbr4 2007-07-04
  • 打赏
  • 举报
回复
你不加后面的那个条件他存在吗
linekery 2007-07-04
  • 打赏
  • 举报
回复
诡秘
qwertxp 2007-07-04
  • 打赏
  • 举报
回复
先来个类型转换再比较。
CONVERT(datetime, outdatetime)
jackie545cs 2007-07-04
  • 打赏
  • 举报
回复
select count(*)
from content
where author='系统管理员' and channelid=240 and to_char(outdatetime,'yyyymmddhh24miss') >= '20030701000000'
试一下吧。
「已注销」 2007-07-04
  • 打赏
  • 举报
回复
看上去没错呀。

关注。
mfkdxu 2007-07-04
  • 打赏
  • 举报
回复
把这个Varchar转换成Datatime类型 然后再比较大小
paoluo 2007-07-03
  • 打赏
  • 举报
回复
檢查下另外的條件看看。

如果是varchar類型,應該是可以比較出來的。

看看這個例子


Declare @outdatetime1 Varchar(30), @outdatetime2 Varchar(30)
Select @outdatetime1 = '20030701000000', @outdatetime2 = '20070725999999'
If(@outdatetime1 < @outdatetime2)
Print 'Y'
Else
Print 'N'

--Y
NekChan 2007-07-03
  • 打赏
  • 举报
回复
其他几个条件都符合吗?

62,261

社区成员

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

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

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

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