Sql时间间隔

Sql时间间隔,第1张

replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

得出的格式是:20090201011324

如果你只需要2009-2-1 1:13:24的话

则CONVERT(varchar, getdate(), 120 )

你说的数据统计我不太清楚

但是针对时间间隔来实现对数据库的 *** 作有一下方式:

比较理想的是用SQL代理

如果是针对别的 *** 作可以写批处理,添加任务计划(这通常针对数据备份、压缩等)

以上答案供参考

select count() from sometable where datetimecolumn>=UNIX_TIMESTAMP('2010-03-01 00:00:00') and

datetimecolumn<UNIX_TIMESTAMP('2010-03-02 00:00:00'),也可以在调用程序中先转换为UNIX时间再传入MySql,总之这种方式有利于快速查询时间段,不过显示时间则需要再反转一次。

可以用dateadd

select from users where dateadd(day,7,Last_Sync_Time)<getdate()

返回Login_Name;

select distinct Login_Name from users where dateadd(day,7,Last_Sync_Time)<getdate()

个人觉得难点在每隔2小时怎么取, 我的方式是取日期(0时0分0秒)然后加上小时数除以2作为标志每2小时的时间间隔(如果时间间隔不是整的小时, 且可以被24整除, 那么尚未想到好的方法); 而取前3条记录则有row_number分组函数可以使用

示例(SQL Server 2005或以上)如下:

declare @tb table (ss int, dt datetime) -- 定义表变量

insert into @tb        -- 插入测试用数据

select 1, '2013/1/20 12:01'

union

select 7, '2013/1/20 12:01'

union

select 3, '2013/1/20 13:21'

union

select 8, '2013/1/20 13:13'

union

select 5, '2013/1/20 12:049'

-- 测试SQL, dt为时间值, hourSpan为分在哪个时间间隔内

select ss, dt, hourSpan

from (

-- 用row_number来按时间间隔分组编号, 且按ss字段升序编号

select ss, row_number() over (partition by convert(nvarchar(10), dt, 120) + '_' + cast(datepart(hour, dt) / 2 as nvarchar(2)) order by ss) as rownumber, dt, convert(nvarchar(10), dt, 120) + '_' + cast(datepart(hour, dt) / 2 as nvarchar(2)) as hourSpan

from @tb

) s

where srownumber <= 3 -- 取分组编号值小于等于3的记录

将这个逻辑套用过去, 大概能满足你的需求 不过, 如果是经常执行这样的查询, 建议建一个字段存此时间间隔值或使用视图, 不然每次查询都有计算, 速度不好

使用Datedif(日期1,日期2,"m")函数

DATEDIF是EXCEL中的函数,还有以下的使用方法一并教教:

1、简要说明: 返回两个日期之间的年\月\日间隔数

2、基本语法: =DATEDIF(开始日期,结束日期,单位代码)

3、实例1:

题目: 计算出生日期为1973-4-1人的年龄

公式: =DATEDIF("1973-4-1",TODAY(),"Y")

结果: 33

简要说明 当单位代码为"Y"时,计算结果是两个日期间隔的年数

4、实例2:

题目: 计算日期为1973-4-1和当前日期的间隔月份数

公式: =DATEDIF("1973-4-1",TODAY(),"M")

结果: 403

简要说明 当单位代码为"M"时,计算结果是两个日期间隔的月份数

5、实例3:

题目: 计算日期为1973-4-1和当前日期的间隔天数

公式: =DATEDIF("1973-4-1",TODAY(),"D")

结果: 12273

简要说明 当单位代码为"D"时,计算结果是两个日期间隔的天数

5、实例4:

题目: 计算日期为1973-4-1和当前日期的不计年数的间隔天数

公式: =DATEDIF("1973-4-1",TODAY(),"YD")

结果: 220

简要说明 当单位代码为"YD"时,计算结果是两个日期间隔的天数忽略年数差

5、实例5:

题目: 计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数

公式: =DATEDIF("1973-4-1",TODAY(),"MD")

结果: 6

简要说明 当单位代码为"MD"时,计算结果是两个日期间隔的天数忽略年数和月份之差

5、实例6:

题目: 计算日期为1973-4-1和当前日期的不计年份的间隔月份数

公式: =DATEDIF("1973-4-1",TODAY(),"YM")

结果: 7

简要说明 当单位代码为"YM"时,计算结果是两个日期间隔的月份数不计相差年数

以上就是关于Sql时间间隔全部的内容,包括:Sql时间间隔、mysql查询时间间隔、求一个SQL查询时间间隔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10190012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存