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查询时间间隔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)