试一试
SELECT *
FROM userinfo
WHERE (CONVERT(char(10), user_date, 120)= CONVERT(char(10), user_bday, 120))
SELECT *
FROM userinfo
WHERE (CONVERT(char(10), user_date, 120)= CONVERT(char(10), user_bday, 120))
调试欢乐多
DATEDIFF ( datepart , startdate , enddate ) 更好,象你的条件可以写成:
WHERE DATEDIFF ( second,user_date, user_bday)=0
FROM userinfo
WHERE (CONVERT(char(10), user_date, 111)= CONVERT(char(10), user_bday, 111))
select CONVERT ( varchar(19), getdate() , 120 )
结果集是:2003-01-26 12:31:59
你要查询的结果是,在你的表userinfo中,user_date和user_bday字段相等的记录,也就是说,二个时间的年月日时分秒都相等的记录.
你可以先到你的表中看一看是否有这样的相等记录?
SELECT *
FROM userinfo
WHERE (CONVERT(varchar(10), user_date, 120)= CONVERT(varchar(10), user_bday, 120))
不等的话,将结果拷贝上来,大家看看,应该没什么问题的啊。
SELECT *
FROM userinfo
WHERE (CONVERT(varchar(19), user_date, 120)= CONVERT(varchar(19), user_bday, 120))
http://expert.csdn.net/Expert/topic/1393/1393178.xml?temp=.4643671
是一个概念问题:there is an N before the start of the string, which indicates that the data following the N is Unicode data.
理解不是很清楚,看看好吗?
我的代码和你的一样,就是没有查询到我才很奇怪
用你的代码试了(如下),select CONVERT(char(19), user_date, 120) as DateTime1, CONVERT(char(19), user_bday, 120) as DateTime2 from userinfo试过之后发现在SQLserver企业管理器里面返回所有行中看到的user_data字段的值是2003-01-25 11:47:30,但是通过上面的语句中显示的确是2003-01-25 11:47:29,这是怎么回事?