Ⅰ mssql计算两个日期时间间隔多少分钟
如果是求间隔的天数,但第一天不算,最后一天也不算入,则办法如下:
1.同一月份,用日期数相减再减1,如1月2日到1月4日(0:00),4-2-1=1(天),只间隔了一天(1月3日)。
2.不同月份,则算出起始日期至月底的天数,再加上剩余的月份的天数(如果是下个月则不用),再加上截止月的月初至截止日期的天数再减一,如3月2日到5月5日(0:00),31-2+30+5-1=63(天),间隔了3月3日到3月31日的29天,四月份的30天,1日到4日的4天。共63天。
如果是求求间隔的天数,但第一天不算,最后一天算入则办法如下:
1.同一月份,用日期数相减,如1月2日到1月4日,4-2=2(天),间隔了两天(1月3日和1月四号)。
2.不同月份,则算出起始日期至月底的天数,再加上剩余的月份的天数(如果是下个月则不用),再加上截止月的月初至截止日期的天数,如3月2日到5月5日,
31-2+30+5=64(天),间隔了3月3日到3月31日的29天,四月份的30天,1日到5日的5天。共64天。
Ⅱ sql时间运算的问题,
时间运算用datediff函数,不过纯粹就只有时间是得到不到正确结果的,你的00:00谁知道是前天的还是现在的?必须是一个完整的时间,比如:2008-8-8
00:00:00(后面的时分秒可以根据需要,但前面的日期一定不能省了)
比如有2个时间字段A和B,现在要计算A和B的时间差:
SELECT
datediff('n',B,C)
from
tb
--datediff里的第一个参数是计算2个时间的时间差的时间间隔
参数的设定值如下:
设置
描述
yyyy
年
q
季
m
月
y
一年的日数
d
日
w
一周的日数
ww
周
h
时
n
分钟
s
秒
如果你要计算的是具体的时间差,可以先计算出差多少分钟,然后在把获得的分钟除以60,得到的整数就是小时,余数就是分钟了.
Ⅲ SQL怎样找出两个时间的间隔,并把周末排除在外,精确到小时!急求代码和思路
2个日期可以用datediff函数得到差值,但是要去掉周末,这个如果用sql,那么就只能自己写个函数了,这种东西建议你直接读取到程序里处理可能会更方便。
Ⅳ 怎么用SQL语句计算时间间隔
DATEDIFF
返回跨两个指定日期的日期和时间边界数。
语法
DATEDIFF ( datepart ,startdate ,enddate )
参数
datepart
是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。
日期部分缩写
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
startdate
是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。
因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。
如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。
有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。
enddate
是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。
返回类型
integer
注释
startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。
当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。
计算跨分钟、秒和毫秒这些边界的方法,使得 DATEDIFF 给出的结果在全部数据类型中是一致的。结果是带正负号的整数值,其等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。
示例
此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。
USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO
Ⅳ 在Sql语句中怎样计算出两个日期的差值
sql语句中计算两个日期的差值用datediff函数。
工具:sqlserver 2008 R2
步骤:
1、计算2009-06-23与2009-06-17之间的天数。语句如下:
selectdatediff(d,'2009-06-17','2009-06-23')
2、查询结果:
Ⅵ 利用SQL语句如何获得两个日期之间相差的天数
用sysdate假设结束日期字段是end_date
添加这个判断条件:
where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判断年相同
and to_char("end_date",'MM') = to_char(sysdate,'MM') 判断月相同
and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判断日相同
或者:
where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15
(6)sql怎样计算两个时间间隔扩展阅读:
注意事项
DATEDIFF返回跨两个指定日期的日期和时间边界数。
语法:DATEDIFF ( datepart , startdate , enddate )
参数:datepart
是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。
startdate是返回datetime或smalldatetime值或日期格式字符串的表达式。 因为smalldatetime只精确到分钟,所以当用smalldatetime值时,秒和毫秒总是 0。
如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。
有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。
enddate是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。
返回类型:integer
注释:startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。
Ⅶ 关于SQL两个时间计算出间隔时间的问题。
declare@DMtimeint
declare@Dvarchar(10)
declare@Hvarchar(10)
declare@Mvarchar(10)
declare@Svarchar(10)
set@DMtime=DATEDIFF(SECOND,'2013-08-2016:40:23','2013-08-2416:05:05')
--获取两个时间段的秒的相差值
set@D=@DMtime/(3600*24)--天数
set@H=(@DMtime-@D*3600*24)/3600--小时
set@M=(@DMtime-@D*3600*24-@H*3600)/60--分钟
set@S=@DMtime-@D*3600*24-@H*3600-@M*60--秒
select@D+N'天
小时
分钟
秒'
效果图如下:
Ⅷ SQl语句求2个时间段的间隔
SELECT DATEDIFF(Hour, '8:30','14:23')
Ⅸ 如何写计算两个时间(含小时分钟秒)间隔的sql
select datediff(day,前时间,后时间)
day是参数,求前时间和后时间之间的天数差异。
这个参数还可以是year,month,day,hour,min,ss
Ⅹ sql语句中可以查询两个日期之间的天数么
select datediff('2009-1-1', '2008-1-1');
用datediff函数,第一个参数是截止时间,第二个参数是起始时间
不好意思,刚才的是mysql,刚看了下sql的文档发现有点区别- -,sql的话,用下面的形式:
DATEDIFF ( datepart , startdate , enddate )
所以你要求2个日期之间间隔的天数,这样写:
datediff( dd, '2008/1/1', '2009/1/2' )
这里的dd表示计算天数差