⑴ sql语句 比较时间大小
这句是未过期的:
select * from 表 as c where endTIME>getdate()
这句是已过期的:
select * from 表 as c where endTIME<getdate()
另外,对日期型的字段进行比较是不用转换成字符型的,直接用 =、<、>来比较就可以了,
还有,null值不参与比较的,所以 AND c.EndTime IS NOT NULL 这段可以省略。
⑵ SQL里时间怎么比较
1\如果是指90天
select *
from table
where datediff(day,time,getdate())<=90
或者
select *
from table
where time>=dateadd(day,-90,getdate())
2\如果是3月
select *
from table
where time>=dateadd(month,-3,getdate())
3\如果是当前月往前推两个自然月的1号算起
select *
from table
where time>=Dateadd(mm,datediff(mm,0,getdate())-2,0)
⑶ SQL时间比较
selecta.name
fromclientelea,(selectb.clienteleid
from[order]b
groupbyclienteleid
havingconvert(varchar(100),getdate()-30,120)<=convert(varchar(100),max(time),120))b
wherea.clienteleid=b.clienteleid
⑷ sql数据库的一个时间类型字段与当前时间比较,要是大于等于的时候就执行某sql语句
直接update就可以了,在where后加判断,语句:
update table
set 更新字段 = '更新值'
where 时间类型字段 > getdate()
⑸ SQL 时间比较
有这么一个古老的传说:
相传,在远古时期,猪头设计者们定义日期类型的时候,一共制定了两套:Date 和 Datetime 类型,
Date是日期的,如:2010-3-15
Datetime日期及时间的,如:2010-3-15 12:01:56:469
假设你要比较的两个时间都是Datetime类型数据,它们不相等的可能性也许是99.99%,因为不仅日子要一样,而且小时、分钟、秒、微秒都要相等,那才算是一致。
假设交易日期这个数据是今天上午产生的,开始日期是今天下午生成的,那么,肯定不相等了。
所以你要让同一天(不管几点钟)的相关联,那就用个函数吧,办法太多了:
①:将Datetime转换为Data再比较,where条件:
convert(date,a.交易记账日期) >= convert(date,b.开始日期)
例如:convert(date, 2010-3-15 19:25:30) 就会返回date型的 2010-3-15 00:00:00,小时分钟什么的全是0了,所以同一天的就相等了
②:将它们按你要求的格式转换为字符串后再比较,where条件:
convert(varchar,a.交易记账日期,102) >= convert(varchar,b.开始日期,102)
例如:convert(varchar, 2010-3-15 19:25:30, 102) 就会返回字符型的2010.3.15,小时分钟什么的全甩掉了
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
请根据这个传说对号入座,希望有所提醒,如果不是这个原因,咱们再研究~
⑹ sql语句中如何进行日期比较
datediff(d,需要比较的日期,getdate()),datediff返回两个日期之间的时间差,getdate()获取当天系统时间
⑺ SQL 日期比较计算
case when Date>sysdate then substr(date,1,4)-substr(sysdate,1,4)||'年'||substr(date,4,2)-substr(sysdate,4,2)||'月'
when date like '200803' then '0年0月'
改成这样就OK了
case when Date>sysdate then substr(date,1,4)-substr(sysdate,1,4)||'年'||abs(substr(date,4,2)-substr(sysdate,4,2))||'月'
when date like '200803' then '0年0月'
那就再改
case when Date>sysdate and substr(date,1,4)>=substr(sysdate,1,4)
and substr(date,4,2)>substr(sysdate,4,2) then substr(date,1,4)-substr(sysdate,1,4)||'年'||abs(substr(date,4,2)-substr(sysdate,4,2))||'月'
when substr(date,1,4)>substr(sysdate,1,4)
and substr(date,4,2)<substr(sysdate,4,2) then substr(date,1,4)-substr(sysdate,1,4)-1||'年'||(substr(date,4,2)+12-substr(sysdate,4,2))||'月'
when date like '200803%' then '0年0月' end
哥们,你那as test 没错,但是case when 后面一定要有end
将end 加上再看看
⑻ SQL查询时间并与当天时间对比
SELECT*FROMA
WHERECONVERT(NVARCHAR,TIME,112)=CONVERT(NVARCHAR,GETDATE(),112)
⑼ mssql存储过程 如何比较当前时间与指定时间是否相同
declare@time1varchar(20)
declare@time2varchar(20)
set@time1='12:15:23'--指定时间
select@time2=CONVERT(varchar(12),getdate(),108)--获取当前时间
--select@time2=CONVERT(varchar,getdate(),120)--获取日期和时间
if(@time1=@time2)
print'时间一致'+@time2
else
print'时间不一致'+@time2
⑽ sql中,怎么对时间进行比较
这个估计是日历时间,一般就是从January 1, 1970, UTC午夜开始到现在所经过的秒数
你可以用DATEADD函数在秒上加上这个数来把它转化为它对应的datetime类型所表示的时间
比如:
select DATEADD(ss, 1257322946, '1970-1-1 00:00:00')
返回
-----------------------
2009-11-04 08:22:26.000
(1 row(s) affected)