sql语句中计算两个日期的差值用datediff函数。
为企业提供成都网站建设、成都网站设计、网站优化、成都全网营销、竞价托管、品牌运营等营销获客服务。成都创新互联拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!
工具:sqlserver 2008 R2
步骤:
1、计算2009-06-23与2009-06-17之间的天数。语句如下:
select datediff(d,'2009-06-17','2009-06-23')
2、查询结果:
datediff函数:
语法:DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式。
datepart 参数可以是下列的值:
结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;
sql 语句就是对数据库进行操作的一种语言。
折叠sql语句
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like '%value1%' (所有包含'value1'这个模式的字符串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
你可以在C#页面做这个逻辑判断
首先 你把查询到数据库的时间值提取出来
然后用当前时间值减去数据库中得就判断出来了
DateTime oldtime = DateTime.Parse(ds.Tables[0].Rows[0][0].ToString());
DateTime Now = DateTime.Parse(DateTime.Now.ToString());
double d = (Now - oldtime).TotalHours;
if(d1)//大于1就是大于1天,也就是超出24小时
{
//弹出窗口
}
access与SqlServer 之时间与日期及其它SQL语句比较
1、Datediff:
1.1算出日期差:
1.access: datediff('d',fixdate,getdate())
2.sqlserver: datediff(day,fixdate,getdate())
ACCESS实例: select * from table where data=datediff('d',fixdate,getdate())
sqlserver实例: select * from table where data=datediff(day,fixdate,getdate())
1.2算出时间差:
1.access: datediff('h',fixdate,getdate())
2.sqlserver: datediff(Hour,'2004-12-10',getdate())
ACCESS实例: select DATEDIFF('h',HMD,getdate())
sqlserver实例: select datediff(Hour,'2004-12-10',getdate())
1.3算出月份差:
1.access: datediff('m',fixdate,getdate())
2.sqlserver: datediff(Month,'2004-12-10',getdate())
ACCESS实例: select DATEDIFF('m',HMD,getdate())
sqlserver实例: select datediff(Month,'2004-12-10',getdate())
DECLARE @lastDate DATE,@date DATE, @str nvarchar(30);
DECLARE c_test_main CURSOR FAST_FORWARD FOR
SELECT
baby.NICKNAME,-- 这个就是字符串
baby.CREATE_DATE -- 这个就是创建的时间
FROM T_BABY baby
-- 打开游标.
OPEN c_test_main;
--填充数据.
FETCH NEXT FROM c_test_main INTO @str, @date;
set @lastDate = null;
--假如检索到了数据,才处理.
WHILE @@fetch_status = 0
BEGIN
IF @lastDate IS NOT NULL
begin
print(DateDiff(minute,@lastDate,@date));
set @lastDate = null;
continue;
END
IF @str = ''
begin
set @lastDate = @date;
end
else
begin
set @lastDate = null;
end
FETCH NEXT FROM c_test_main INTO @str, @date; -- 游标至下一个
END;
-- 关闭游标
CLOSE c_test_main;
--释放游标.
DEALLOCATE c_test_main;
中间一些信息什么的替换替换就可以用,我这个只是单行单行的打印出来的,若你想返回一个结果集的话自己改一改就行。相信楼主修改修改还是没问题的。
正常的话,算时间差的秒数是用datediff函数
比如
select datediff(s,'2013-01-07','2013-04-01')
这个就是算2013年4月1号到2013年1月7号之间的秒数
但是你说各个时间的时间差是什么意思
后边一行减前边一行吗?
还有你是mssql的哪个版本?
select
datediff(day,GETDATE(),getdate())--天数差
select
DATEDIFF
(HOUR,GETDATE()-2,getdate())
--小时差
值/24,就是天
select
DATEDIFF
(MINUTE,GETDATE()-2,getdate())
--俩个日期的分钟差,值/24,天数差,余值/60,小时差,余数为分钟。