sql server 如何将日期时间字段修改成最接近该时间的整点时间?
4个回答
2017-06-01 · 知道合伙人软件行家
关注
展开全部
*以下语句中的时间字段以“date_test”为例
1、获取“最近”的整点:
使用DATEADD(datepart,number,date)函数(结尾有详细语法说明)来获取一个时间30分钟后的时间DATEADD(mi,30,date_test)
列值为2017-01-01 01:20:00,返回2017-01-01 01:50:00,即整点1点
列值为2017-01-01 01:40:00,返回2017-01-01 02:10:00,即整点2点
2、根据方法1获取的时间,使用DATENAME函数分别取出年份、月份、小时,比如年份DATENAME(YEAR,DATEADD(mi,30,date_test))
3、根据方法2获取的年份、月份、小时,使用’-‘符连接成时间,用 CAST(char as datetime)函数转成时间数据类型
完整代码(代码中以系统当前时间(getdate())为参考时间):
select CAST(DATENAME(YEAR,DATEADD(mi,30,getdate()))+'-'+DATENAME(MONTH,DATEADD(mi,30,getdate()))+'-'+DATENAME(DAY,DATEADD(mi,30,getdate()))+' '+DATENAME(HOUR,DATEADD(mi,30,getdate()))+':00:00' AS DATETIME)
DATEADD的语法:
--DATEADD(datepart,number,date)——在日期上增加给定日期类型的数量;
select dateadd(yyyy,4,cl_s_time) as '增加4年后' from class --datepart - 年份
yy、yyyy
select dateadd(q,2,cl_s_time) as '增加2季度后' from class
--datepart - 季度
qq、q
select dateadd(mm,3,cl_s_time) as '增加3月度后' from class
--datepart - 月份
mm、m
--datepart - 每年的某一日
dy、y
--datepart - 日期
dd、d
--datepart - 星期
wk、ww
--datepart - 小时
hh
--datepart - 分钟
mi、n
--datepart - 秒
ss、s
--datepart - 毫秒
ms
展开全部
截取即可,datetime字段应该是有到秒的,可以截取部分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
UPDATE 表 SET 时间列=CAST(DATENAME(YEAR,DATEADD(MINUTE,30,时间列))+'-'+DATENAME(MONTH,DATEADD(MINUTE,30,时间列))+'-'+DATENAME(DAY,DATEADD(MINUTE,30,时间列))+' '+DATENAME(HOUR,DATEADD(MINUTE,30,时间列))+':00:00' AS DATETIME)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT CONVERT(VARCHAR(13), DATEADD(hour,
CASE WHEN REPLACE(RIGHT(CONVERT(VARCHAR(100), GETDATE(), 114),
9), ':', '') >= 3000000
THEN 1
ELSE 0
END, GETDATE()), 25)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询