获取小时函数的问题 mysql里HOUR(12:30:11) =12HOUR(-22:30:11) =22如何得到HOUR(-22:30:11)=-22 ?意思是用什么代替HOUR... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -22:30:11是怎么来的,SQL没有这个概念 -HOUR(22:30:11)-cast(-HOUR(22:30:11) as int) 谢谢大家的回复回复 “-22:30:11是怎么来的,SQL没有这个概念”timediff('2008-08-08 12:00:00', '2008-08-08 08:00:00')= 2:00:00timediff('2008-08-08 12:00:00', '2008-08-08 22:00:00')= -10:00:00 对HOUR(*) *是个变量,有正数也有负数,直接通过HOUR(*),正的得正数,负和得数,而不是只给一个时间-cast(-HOUR(22:30:11) as int),不知能用否??? Mysql中,看它的功能了。MSSql中没有hour这个函数。 分割的话 对于正负就不用同样分了substring(22:30:11,1,3)=22:substring(-22:30:11,1,3)=-22结果也处理不了,因为得小时后还要对做对比处理 作为 WHERE 里的条件 用CASE WHEN 判断,如果有'-'就前面加一个'-' select case when 条件='' then .. else .. end 把我来用的 SQL 语句贴上吧,大家会好理解一点"SELECT * FROM `表` WHERE 0< HOUR(timediff(NOW(), '字段')<8"就是求字段中(值为日期时间)与当前在8小时内的记录如果timediff()得到负数,再HOUR()得到正数,结果就不对了。 select datediff(hour,'2008-08-08 12:00:00', '2008-08-08 22:00:00') 你用的不是标准sql,不太清楚。不过不要过于拘泥于取出小时,加一个条件,让当前时间>=或<='字段'不行么之后再用程序费解 谢谢你了,因为我用有字段是时间型的 用“SELECT * FROM T1 WHERE z1 < now( ) AND (z1+INTERVAL 8 HOUR)> now( )” 就可以了 请问这个sql语句为什么起不到效果呢? SQL Server2000 标准版 如何支持 超过2G 的内存?操作系统:Windows 2000 server! 求一SQL处理过程,字段内容拆分插入新表 【急求】日期查询问题,请看一下吧 存储过程中,字段是变量怎么解决?? 难道SQL不支持大型数据库? 登录问题 求助:这个SQL语句怎么写?(同时查4个表) 我是一个刚学sql的人,有些问题想问问大家?? 关于删除的问题!帮帮忙! 如何查询属于某个区域内的记录? 存储过程参数为表名,如何查询
-cast(-HOUR(22:30:11) as int)
回复 “-22:30:11是怎么来的,SQL没有这个概念”
timediff('2008-08-08 12:00:00', '2008-08-08 08:00:00')= 2:00:00
timediff('2008-08-08 12:00:00', '2008-08-08 22:00:00')= -10:00:00
对HOUR(*) *是个变量,有正数也有负数,直接通过HOUR(*),正的得正数,负和得数,而不是只给一个时间
-cast(-HOUR(22:30:11) as int),不知能用否???
substring(22:30:11,1,3)=22:
substring(-22:30:11,1,3)=-22结果也处理不了,因为得小时后还要对做对比处理 作为 WHERE 里的条件
select case when 条件='' then .. else .. end
如果timediff()得到负数,再HOUR()得到正数,结果就不对了。
加一个条件,让当前时间>=或<='字段'不行么
之后再用程序费解
谢谢你了,因为我用有字段是时间型的 用
“SELECT *
FROM T1
WHERE z1 < now( )
AND (z1+INTERVAL 8 HOUR)> now( )” 就可以了